Tomcat学习笔记--简单了解和Web应用的目录结构以及常见的Web应用时出现404错误

简介:

前言:

Tomcat:
开源组织Apache的产品。免费的。支持部分的JavaEE规范。(servlet、jsp。jdbc,但ejb, rmi不支持)

如果是压缩版的话 ,直接解压就可以使用。

打开tomcat:

找到%tomcat%/bin/startup.bat ,双击这个文件
b)弹出窗口,显示信息(不要关闭次窗口)
c)打开浏览器,输出以下地址
http://localhost:8080
d)看到一只猫画面,证明软件启动成功!

关闭tomcat:

a)找到%tomcat%/bin/shutdown.bat,双击这个文件即可!
c)打开浏览器,输出以下地址。看到“无法连接”(最好先清空浏览器缓存)

注意:

localhost代表本地
8080 是默认监听端口号

tomcat常见问题:

1)闪退问题

原因:tomcat软件是java语言开发的。 tomcat软件启动时,  
会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。  
这个变量的作用找到tomcat启动所需的jvm。

解决办法:

到环境变量中设置JAVA_HOME的变量
JAVA_HOME= C:\Program Files\Java\jdk(注意别配置到bin目录下)

2)端口占用的错误

原因: tomcat启动所需的端口被其他软件占用了!
            
解决办法: 
a)关闭其他软件程序,释放所需端口
b)修改tomcat软件所需端口
  找到并修改%tomcat%/conf/server.xml文件
<Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

注意:
port是默认端口号 改为其他的就行 只要不冲突

3)CATALINA环境变量问题

原因: tomcat软件启动后,除了查找JAVA_HOME后,  
还会再查找一个叫CATALINA_HOME变量,  
这个变量的作用是设置tomcat的根目录。
如果有两个tomcat那么就有问题了
解决办法:建议不要设置CATALINA_HOME变量。  
检查如果有的话,清除掉!!!

webapps目录: tomcat共享目录。需要共享的本地资源放到此目录中。

URL

URL全名叫统一资源定位符,用于定位互联网的资源。

问题: http://localhost:8081/myweb/test.html 看到文件?

            http://     协议。http协议。
            localhost    域名。为了找到IP地址。
                            本地域名: localhost
                            外部域名:www.baidu.com
            8081       端口。软件监听的
                        8080: tomcat默认的端口
                        3306:mysql数据库的端口
                        1521: orace数据库的端口。
/myweb:   web应用的名称。默认情况下,在webapps目录下找
/test.html  : 资源名称。

题外话:
C:\Windows\System32\drivers\etc\hosts 可以知道localhost对应的电脑ip地址
localhost :
在计算机网络中,localhost(意为“本地主机”,指“这台计算机”)是给回路网络接口(loopback)的一个标准主机名,相对应的IP地址为127.0.0.1(IPv4)

Tomcat的目录结构:

|-bin: 存放tomcat的命令。
            catalina.bat 命令:
                    startup.bat  -> catalina.bat start    
                    shutdown.bat - > catalina.bat stop
|- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。
|-lib:支持tomcat软件运行的jar包。其中还有技术支持包,如servlet,jsp
|-logs:运行过程的日志信息
|-temp: 临时目录
|-webapps: 共享资源目录。web应用目录。(注意不能以单独的文件进行共享)
|-work: tomcat的运行目录。jsp运行时产生的临时文件就存放在这里

Web应用的目录结构:

(图片来自网络)
这里写图片描述

|- WebRoot :   web应用的根目录
        |- 静态资源(html+css+js+image+vedio)
        |- WEB-INF : 固定写法。
            |-classes: (可选)固定写法。存放class字节码  
            文件 最好是带有包名    
            |-lib: (可选)固定写法。存放jar包文件。
            |-web.xml    //文件配置信息
  1. WEB-INF目录里面的资源不能通过浏览器直接访问
    但该目录下的内容对于Servlet代码是可见的
  2. 如果希望访问到WEB-INF里面的资源,就必须把资源配置到一个叫web.xml的文件中。
  3. web.xml:Java web server / servlet container使用,比如告诉容器哪些servlets需要部署,以及URL映射关系
  4. 存放jar,通常存放第三方依赖,或将自己的java代码打成jar放在此,而不是classes下
  5. 说明:① WEB-INF目录下的classes和lib目录都可以存放Java的类文件,在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是classes目录下的类

再来一张汇总的:来自网络
这里写图片描述

访问Web应用时出现404错误的常见原因

  1. web.xml中的servlet-class配置错误
    a. servlet-class的值不是相对于WEB-INF/classes目录、  
    b. 类名与WEB-INF/classes下的不同
    c. <servlet-class>的值不是类名,而是class
举例:<servlet-class>first.one.first.class</servlet-class>
  1. web.xml中的url-pattern配置错误
       url-pattern属性的值没有以”/”开头
目录
相关文章
|
1月前
|
计算机视觉 Python
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
这篇文章是关于如何使用Flask框架结合OpenCV库,通过电脑摄像头实现视频流在网页上的实时显示,并提供了单摄像头和多摄像头的实现方法。
85 2
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
|
1月前
|
文件存储 Python
Flask学习笔记(一):Flask Web框架
本文介绍了Flask Web框架的基本概念、安装方法、初始化参数、程序编写、静态文件显示和配置信息加载等基础知识。
25 0
|
1月前
|
Java 应用服务中间件 Apache
浅谈Tomcat和其他WEB容器的区别
Tomcat是一款轻量级的免费开源Web应用服务器,常用于中小型系统及并发访问量适中的场景,尤其适合开发和调试JSP程序。它不仅能处理HTML页面,还充当Servlet和JSP容器。相比之下,物理服务器是指具备处理器、硬盘等硬件设施的服务器,如云服务器,其设计目标是在处理能力、稳定性和安全性等方面提供高标准服务。简言之,Tomcat专注于运行Java应用,而物理服务器则提供基础计算资源。
|
2月前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
53 0
|
3月前
|
Java Maven Apache
Struts 2 配置不再难!跟着这篇详解从零搭建开发环境
【8月更文挑战第31天】要搭建Struts 2开发环境,需先安装JDK,然后下载并解压Struts 2二进制包,将其核心库`struts2-core`添加到项目类路径中。使用Maven或Gradle时,可在配置文件中添加依赖。接着,在`web.xml`中配置Struts 2过滤器及其映射。`struts.xml`通常位于`src/main/resources`目录下,用于定义动作映射和拦截器等核心配置。最后,通过配置类路径下的`log4j.properties`文件,可以设置Struts 2的日志记录级别及输出方式。完成以上步骤后,即可开始基于Struts 2框架进行Web应用开发。
101 0
|
3月前
|
开发者 前端开发 Java
架构模式的诗与远方:如何在MVC的田野上,用Struts 2编织Web开发的新篇章
【8月更文挑战第31天】架构模式是软件开发的核心概念,MVC(Model-View-Controller)通过清晰的分层和职责分离,成为广泛采用的模式。随着业务需求的复杂化,Struts 2框架应运而生,继承MVC优点并引入更多功能。本文探讨从MVC到Struts 2的演进,强调架构模式的重要性。MVC将应用程序分为模型、视图和控制器三部分,提高模块化和可维护性。
47 0
|
3月前
|
Java Spring Maven
Struts 2遇见Spring:这个组合如何颠覆你的Web开发?
【8月更文挑战第31天】在现代Web开发中,Struts 2与Spring的结合使用能显著增强应用的模块化和可维护性。本文将介绍如何整合这两个框架,并提供代码示例。首先,在`pom.xml`中添加Struts 2和Spring的依赖,然后在`struts.xml`中配置Struts 2以识别Spring插件。接着,在Spring配置文件中定义bean,并在Struts 2的Action类中使用`@Autowired`注解进行自动注入。
47 0
|
3月前
|
Java 数据库连接 数据库
强强联手!JSF 与 Hibernate 打造高效数据访问层,让你的应用如虎添翼,性能飙升!
【8月更文挑战第31天】本文通过具体示例详细介绍了如何在 JavaServer Faces (JSF) 应用程序中集成 Hibernate,实现数据访问层的最佳实践。首先,创建一个 JSF 项目并在 Eclipse 中配置支持 JSF 的服务器版本。接着,添加 JSF 和 Hibernate 依赖,并配置数据库连接池和 Hibernate 配置文件。然后,定义实体类 `User` 和 DAO 类 `UserDAO` 处理数据库操作。
60 0
|
3月前
|
开发者 前端开发 Apache
【绝不错过!】揭秘Wicket大神级插件,带你飞越编程极限,探索Web应用开发新大陆!
【8月更文挑战第31天】Apache Wicket是一个成熟的Java Web框架,以其组件化体系结构、直观的API及对MVC的支持著称。其活跃社区贡献了大量插件和扩展,显著提升了Wicket的功能性。本文推荐几个实用插件,如**Wicket Ajax Support**,可轻松添加Ajax功能,提升用户体验;**Bootstrap for Wicket**则将Bootstrap与Wicket结合,美化应用界面。
34 0
|
3月前
|
SQL 安全 JavaScript
深入剖析Blazor应用的安全性:从常见Web攻击谈起与传统Web应用的对比与防护策略
【8月更文挑战第31天】本文探讨了Blazor应用的安全策略,通过与传统Web应用的安全措施进行比较,详细分析了如何防范常见的网络攻击。首先介绍了Blazor框架如何通过其基于组件的模型和服务器端DOM控制来减少跨站脚本攻击的风险;接着讨论了使用ORM工具如Entity Framework来预防SQL注入攻击的方法;最后分析了跨站请求伪造攻击,并说明了在Blazor应用中如何利用AntiforgeryToken增强安全性。尽管Blazor提供了许多内置的安全防护,但开发者仍需结合良好的编程习惯来全面保护应用。
43 0