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属性的值没有以”/”开头
目录
相关文章
|
6天前
|
安全 前端开发 API
【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?
【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?
|
6天前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
|
2天前
|
前端开发 JavaScript API
构建高效Web应用:React与Node.js的完美结合
【8月更文挑战第29天】在当今快速变化的软件开发领域,构建高性能、可扩展的Web应用成为开发者的首要任务。本文将深入探讨如何利用React和Node.js这两大技术栈,打造一个高效且响应迅速的现代Web应用。从前端的用户界面设计到后端的服务逻辑处理,我们将一步步分析这两种技术如何协同工作,提升应用性能,并确保用户体验的流畅性。通过实际代码示例和架构设计的解析,本篇文章旨在为读者提供一套清晰的指南,帮助他们在项目开发中做出更明智的技术选择。
|
3天前
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
14 2
|
7天前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
7天前
|
Python
【Azure 应用服务】如何为Web Jobs 安装Python包呢?
【Azure 应用服务】如何为Web Jobs 安装Python包呢?
【Azure 应用服务】如何为Web Jobs 安装Python包呢?
|
1天前
|
JavaScript 前端开发 UED
服务器端渲染新浪潮:用Vue.js和Nuxt.js构建高性能Web应用
【8月更文挑战第30天】在现代Web开发中,提升应用性能和SEO友好性是前端开发者面临的挑战。服务器端渲染(SSR)能加快页面加载速度并改善搜索引擎优化。Vue.js结合Nuxt.js提供了一个高效框架来创建SSR应用。通过安装`create-nuxt-app`,可以轻松创建新的Nuxt.js项目,并利用其自动路由功能简化页面管理。Nuxt.js默认采用SSR模式,并支持通过`asyncData`方法预取数据,同时提供了静态站点生成和服务器端渲染的部署选项,显著提升用户体验。
|
1天前
|
存储 JavaScript NoSQL
构建高效Web应用:使用Node.js和Express框架
【8月更文挑战第30天】本文将引导你了解如何使用Node.js和Express框架快速搭建一个高效的Web应用。通过实际的代码示例,我们将展示如何创建一个简单的API服务,并讨论如何利用中间件来增强应用功能。无论你是新手还是有经验的开发者,这篇文章都将为你提供有价值的见解。
|
4天前
|
JavaScript PHP 开发者
PHP中的异常处理与自定义错误处理器构建高效Web应用:Node.js与Express框架实战指南
【8月更文挑战第27天】在PHP编程世界中,异常处理和错误管理是代码健壮性的关键。本文将深入探讨PHP的异常处理机制,并指导你如何创建自定义错误处理器,以便优雅地管理运行时错误。我们将一起学习如何使用try-catch块捕获异常,以及如何通过set_error_handler函数定制错误响应。准备好让你的代码变得更加可靠,同时提供更友好的错误信息给最终用户。
|
7天前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
下一篇
云函数