服务器:

服务器的概念非常的广泛,它可以指代一台特殊的计算机(相比普通计算机运行更快、负载更高、价格更贵),也可以指代用于部署网站的应用。我们这里说的服务器,其实是web服务器,或者应用服务器。它本质就是一个软件,一个应用,通过软硬件的结合从而达到发布应用(工程)的作用,让用户可以通过浏览器访问我们的应用。

常见的应用服务器,请看下表:

  • 重量级:重量级服务器实现了所有的JavaEE规范
  • 轻量级:轻量级服务器实现了部分JavaEE规范
服务器名称 说明
weblogic 实现了javaEE规范,重量级服务器,又称为javaEE容器
websphereAS 实现了javaEE规范,重量级服务器。
JBOSSAS 实现了JavaEE规范,重量级服务器。免费的。
Tomcat 实现了jsp/servlet规范,是一个轻量级服务器,开源免费。

Tomcat:

Tomcat是Apache软件基金会的一个核心项目,由Apache、Sun和其它公司共同开发而成的。由于有了Sun公司的参与支持,最新的Servlet、JSP规范总是能在Tomcat中得到体提现,因为Tomcat技术先进、性能稳定,而且免费,所以深受Java爱好者并得到了部分软件开发商的认可,已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。

Tomcat各版本的技术支持:

Servlet Spec JSP Spec EL Spec WebSocket Spec Authentication (JASIC) Spec Apache Tomcat Version Latest Released Version Supported Java Versions
6.0 3.1 5.0 TBD TBD 10.1.x 10.1.0-M6 (alpha) 11 and later
5.0 3.0 4.0 2.0 2.0 10.0.x 10.0.12 8 and later
4.0 2.3 3.0 1.1 1.1 9.0.x 9.0.54 8 and later
3.1 2.3 3.0 1.1 1.1 8.5.x 8.5.72 7 and later
3.1 2.3 3.0 1.1 N/A 8.0.x (superseded) 8.0.53 (superseded) 7 and later
3.0 2.2 2.2 1.1 N/A 7.0.x (archived) 7.0.109 (archived) 6 and later(7 and later for WebSocket)
2.5 2.1 2.1 N/A N/A 6.0.x (archived) 6.0.53 (archived) 5 and later
2.4 2.0 N/A N/A N/A 5.5.x (archived) 5.5.36 (archived) 1.4 and later
2.3 1.2 N/A N/A N/A 4.1.x (archived) 4.1.40 (archived) 1.3 and later
2.2 1.1 N/A N/A N/A 3.3.x (archived) 3.3.2 (archived) 1.1 and later

Mac版本下载:

下载地址:http://tomcat.apache.org/

启动Tomcat:

  • 下载好了解压到指定路径,并进到bin目录下
  • 打开终端,把bin目录拖到cd后面

启动:

  • Windows启动:startup.bat Windows
  • Linux/Mac启动:./startup.sh

停止:

  • Windows停止:shutdown.bat Windows
  • Linux/Mac停止:./shutdown.sh
# cd后面是你的tomcat路径
cd /Users/itzhuzhu/Desktop/Java/plug/apache-tomcat-10.0.2/bin# 启动tomcat
./startup.sh# 关闭Tomcat
./shutdown.sh

访问http://localhost:8080/可以看到这样的就说明启动了
自己部署项目的话就放在在webapps目录下浏览器访问对应的路径就可以了
为什么需要写8080才可以访问

  • 正常情况下访问一个网站都是只要输入域名就可以了,但是Tomcat提供的是http服务,而http的端口默认是80,所以为了和http的端口贴近,就默认是8080了,而且在Linux里不是root用户的话是不能使用1024以内的端口号的

Linux版本下载与安装:

  • 下载Tomcat,和Mac版一样,用tar.gz的上传到Linux
  • 在crt上 使用 alt+p,将windows上的软件拖进去即可(root目录)
  1. 找个地方新建一个tomcat文件夹
mkdir tomcat
  1. 移动 tomcat…tar.gz 到 /usr/local/tomcat
mv apache-tomcat-8.5.32.tar.gz /usr/local/tomcat/
  1. 进入/usr/local/tomcat目录,解压Tomcat
cd /usr/local/tomcat tar -xvf apache-tomcat-8.5.32.tar.gz
  1. 进入 /usr/local/tomcat/apache-tomcat-8.5.32/bin
cd /usr/local/tomcat/apache-tomcat-8.5.32/bin
  1. 启动tomcat
./startup.sh
  1. 修改防火墙的规规则
# 放行8080 端口,修改配置文件
cd /etc/sysconfig
vi iptables
# 复制(yy , p)    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# 改成
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
# 重启加载防火墙或者重启防火墙
service iptables reload
# 或者
service iptables restart

Tomcat目录结构:

Tomcat异常:

启动问题:

  1. 启动一闪而过
  • 原因:没有配置环境变量。
  • 解决办法:配置上JAVA_HOME环境变量
  1. Address already in use : JVM_Bind
  • 原因:端口被占用
  • 解决办法:修改conf文件下的server.xml配置文件修改端口号,(修改69行的port=”8080″)修改完再启动
  1. 启动产生很多异常,但能正常启动
  • 原因:Tomcat中部署着很多项目,每次启动这些项目都会启动。而这些项目中有启动报异常的。
    解决办法:
  • 找到报异常的项目,就把它从发布目录中移除。
  • 不能确定报异常的项目,就重新解压一个新的Tomcat。
  1. 启动乱码
  • 原因:可能和你的控制台的字符集不匹配
    解决办法:
  • 打开conf下的logging.properties的配置文件,47行的UTF-8改成GBK,或者GBK改成UTF-8

IDEA集成Tomcat:


新建项目就可以使用Tomcat了
创建完是这样的

URL:自己随便写,把下面两个改为更新和资源便于后续更新时不需要重启服务器

都配置完毕,就可以启动Tomcat了

Tomcat报错:java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
报错内容如下,

类型 异常报告消息 实例化Servlet类[org.springframework.web.servlet.DispatcherServlet]异常描述 服务器遇到一个意外的情况,阻止它完成请求。例外情况jakarta.servlet.ServletException: 实例化Servlet类[org.springframework.web.servlet.DispatcherServlet]异常org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:863)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1682)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:834)
根本原因。java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletjava.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:863)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1682)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:834)
根本原因。java.lang.ClassNotFoundException: javax.servlet.http.HttpServletorg.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1445)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:863)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1682)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:834)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看

解决:
1、更换Tomcat版本,我是10版本换成了9就没问题了,不知道为什么。
2、网上说要加依赖,这个没试,

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>

Tomcat部署项目找不到war包:

在我们启动项目时发现tomcat配置里找不到war包,这个时候启动就会有问题。把下面的操作跟着做一遍即可。

1、首先找到项目结构

2、找到工件,点击添加

3、在工件中添加web应用程序,选择基于模块
然后会弹出弹框,点击确定

4、这个时候的配置如图所示,点击确定即可

5、回到Tomat配置文件中,点击添加工件就会出现war包了

点击确定,到这里就配置好了

JavaWeb应用目录结构详解

Tomcat创建好以后会自动创建几个目录

  • src:存放源代码的
  • web:存在项目相关资源的(html、css、js、jsp、图片等)
  • WEB-INF:存放相关配置的(web.xml等),如果有web.xml或者.class文件时,该目录必须存在,且严格区分大小写。该目录下的资源,客户端是无法直接访问的。目录中内容如下:
  • classes:web应用的class文件(加载顺序:我们的class,lib目录中的jar包,tomcat的lib目录中的jar包。优先级依次降低)
  • lib:web应用所需的jar包(tomcat的lib目录下jar为所有应用共享)
  • web.xml:web应用的主配置文件

Tomcat启动报错:java.net.BindException

报错内容:没复制完,当时还有别的内容,反正一般起不来基本都是端口冲突的问题,改端口或者kill就行了。有时候是因为刚安装Tomcat然后启动访问8080测试,当时忘记关闭,然后又去IDEA集成Tomcat,就会遇到冲突的问题。

org.apache.catalina.LifecycleException: 协议处理程序初始化失败 at org.apache.catalina.connector.Connector.initInternal(Connector.java:1059) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:556) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1012) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.startup.Catalina.load(Catalina.java:747) at org.apache.catalina.startup.Catalina.load(Catalina.java:769) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:305) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)

Tomcat更改端口号:

Tomcat服务器主配置文件中配置着访问端口,它在配置文件中写的值是:8080。但是它不是Tomcat的默认端口。我们此处说的默认端口是,当使用默认值的时候,端口号可以省略。Tomcat的默认端口是80

通过在主配置文件中添加标签实现,在conf的目录下有一个server.xml的配置文件,如果想改端口号就找到这个

<!-- 改成80端口号的话就不需要输入localhost:8080了,只需要输入localhost就可以发布正式项目的时候都是需要改为80端口号的
--><Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

Tomcat配置虚拟目录:

作用:可以发布任意目录下的项目

  1. 通过在主配置文件中添加标签实现。
    在server.xml的元素中加一个元素。
    ​ path:访问资源虚拟目录名称 。URL名称可以随便起,但是必须在前面加上一个/
    ​ docBase:项目真实存在的路径。
<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /><!-- 配置了这个就可以发布指定路径下的项目,但是一般还是都放在webapps下 --><Context path=”” docBase=”/Users/itzhuzhu/Desktop/Java”/></Host>
  1. 通过写一个独立配置文件实现。
    写一个独立的xml文件,该文件名可以随便起。在文件内写一个元素。该文件要放在Tomcat目录中的conf\Catalina\localhost\目录下。需要注意的是,在使用了独立的配置文件之后,访问资源URI就变成了/+文件的名称。而Context的path属性就失效了

Tomcat编辑虚拟主机:

编辑server.xml配置文件,找到在<Engine>元素在元素中添加一个

<!-- 会在localhost访问的时候,会到webapps下找到webdemo这个项目 --><Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"Context path ="" docBase="webdemo"></Host>

其中:

  • name:指定主机的名称
  • appBase:当前主机的应用发布目录
  • unparkWARs:true启动时是否自动解压war包
  • autoDeploy:是否自动发布
  • docBase:项目的名称

改完server.xml后还要修改电脑的hosts文件,加上host中name的值,如果是配置域名的话就把name的值改为域名地址,然后下面绑定域名就可以了

127.0.0.1 localhost

Tomcat Server处理一个http请求的过程:

假设来自客户的请求为:http://localhost:8080/wsota/wsota_index.jsp

  1. 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得

  2. Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应

  3. Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host

  4. Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)

  5. localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context

  6. Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)

  7. path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet

  8. Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类

  9. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法

  10. Context把执行完了之后的HttpServletResponse对象返回给Host

  11. Host把HttpServletResponse对象返回给Engine

  12. Engine把HttpServletResponse对象返回给Connector

  13. Connector把HttpServletResponse对象返回给客户browser

startup.bat详解:


if "%OS%" == "Windows_NT" setlocal //判断当前系统是否是window系统rem --------------------------------------------------------------------------- //rem 是注释(下同)rem Start script for the CATALINA Serverremrem $Id: startup.bat 302918 2004-05-27 18:25:11Z yoavs $rem ---------------------------------------------------------------------------rem Guess CATALINA_HOME if not definedset CURRENT_DIR=%cd% //设置当前目录if not "%CATALINA_HOME%" == "" gotogotHome //如果设置了CATALINA_HOME环境变量 ,就直接到下面的gotHome处set CATALINA_HOME=%CURRENT_DIR% //如果没有设置CATALINA_HOME,就设置CATALINA_HOME为当前目录(其实这里她假设你进入tomcat的安装目录)if exist "%CATALINA_HOME%\bin\catalina.bat" gotookHome//判断一下catalina.bat是否找到了,找到了就直接到下面的gotHome处cd .. //这里他是假设你开始已经进入到了tomcat的bin目录,所以就退到上一级目录set CATALINA_HOME=%cd%//现在再设置CATALINA_HOME为tomcat的安装目录cd %CURRENT_DIR% //这里是进入dos的当前目录:gotHomeif exist "%CATALINA_HOME%\bin\catalina.bat" gotookHome //再次判断catalina.bat是否找到了,找到了就直接到下面的okHome处,没有的话,就只能提示你啦!echo The CATALINA_HOME environment variable is not defined correctlyecho This environment variable is needed to run this programgoto end:okHomeset EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat //设置要执行的文件rem Check that target executable existsif exist "%EXECUTABLE%" gotookExec //再次判断catalina.bat是否找到了,找到了就直接到下面的okExec处,没有的话,就提示。echo Cannot find %EXECUTABLE%echo This file is needed to run this programgoto end:okExecrem Get remaining unshifted command line arguments and save them in theset CMD_LINE_ARGS= //这里是设置参数:setArgsif ""%1""=="""" gotodoneSetArgs //判断参数是否加入完成set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 //将参数组成一行,接在后面shiftgotosetArgs:doneSetArgscall "%EXECUTABLE%" start %CMD_LINE_ARGS% //执行catalina.bat,最好将这行改为:echo "%EXECUTABLE%" start %CMD_LINE_ARGS% 以便阅读、理解本文件的作用:end//这个批处理文件,主要是正确的找到catalina.bat,并且执行。当把tomcat解压到一个地方时,通常是设置一个CATALINA_HOME的环境变量,执行这个文件时,就很容易找到 catalina.bat
如果没有设置CATALINA_HOME的环境变量,那么你需要在dos中进入tomcat的安装目录,或者bin...子目录,再执行这个文件,如果在其他目录,将会出现提示找不到文件。修改startup.bat,使其不依赖JAVA_HOM和CATALINA_HOME变量的方法:SET JAVA_HOME=JDK目录
SET CATALINA_HOME=解压后Tomcat的目录例如:set JAVA_HOME=D:\Program Files\java\jdk1.6.0_21set CATALINA_HOME=D:\Program Files\apache-tomcat-6.0.29

web.xml详解:

<web-app>
<display-name></display-name>定义了WEB应用的名字    <description></description> 声明WEB应用的描述信息    <context-param></context-param> context-param元素声明应用范围内的初始化参数。    <filter></filter> 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。
<filter-mapping></filter-mapping> 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。 <listener></listener>servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知.Listener元素指出事件监听程序类。    <servlet></servlet> 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。    <servlet-mapping></servlet-mapping> 服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。    但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。    <session-config></session-config> 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。    可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。    <mime-mapping></mime-mapping>如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。<welcome-file-list></welcome-file-list> 指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。  <error-page></error-page> 在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。    <taglib></taglib> 对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。  <resource-env-ref></resource-env-ref>声明与资源相关的一个管理对象。 <resource-ref></resource-ref> 声明一个资源工厂使用的外部资源。<security-constraint></security-constraint> 制定应该保护的URL。它与login-config元素联合使用   <login-config></login-config> 指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。  <security-role></security-role>给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。  <env-entry></env-entry>声明Web应用的环境项。 <ejb-ref></ejb-ref>声明一个EJB的主目录的引用。 < ejb-local-ref></ ejb-local-ref>声明一个EJB的本地主目录的应用。   </web-app>

tomcat安装启动配置相关推荐

  1. Tomcat安装及配置教程(超详细的图文教程)(亲测)

    Tomcat安装及配置教程(超详细的图文教程) 1.什么是Tomcat Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下 ...

  2. 最新Tomcat安装及配置教程+JavaWeb项目部署

    最新Tomcat安装及配置教程+JavaWeb项目部署 介绍 一.下载安装Tomcat 二.配置环境变量 三.JavaWeb项目发布 四.登录Web查询系统 介绍 此文章为自己在Tomcat配置及项目 ...

  3. Tomcat安装、配置、优化及负载均衡详解

    博客园 首页 新随笔 联系 管理 订阅 随笔- 31  文章- 0  评论- 25  Tomcat安装.配置.优化及负载均衡详解 一.常见JavaWeb服务器      1.WebLogic:是BEA ...

  4. Tomcat 安装与配置 win10

    Tomcat 安装与配置 [Win10] 一.Tomcat 下载与安装 小贴士:(老版本 Tomcat 下载) 二.Tomcat 在 eclipse 上的配置 小贴士(配置 Tomcat 时 Serv ...

  5. jdk,tomcat安装和配置

    1.jdk安装和配置: 安装: 创建一个文件夹,存放jdk,tomcat等等,mkdir /usr/local/mytools 进入该文件,rz上传jdk:  jdk-8u151-linux-x64. ...

  6. tomcat安装启动startup.bat文件命令行界面出现乱码的问题解决

    tomcat安装启动startup.bat文件命令行界面出现乱码的问题解决 参考文章: (1)tomcat安装启动startup.bat文件命令行界面出现乱码的问题解决 (2)http://www.c ...

  7. Tomcat安装与配置

    Tomcat安装与配置 一.tomcat下载 安装tomcat前需要先安装Java运行环境,不然会闪退,tomcat依赖于Java运行环境 官网地址:Apache Tomcat® 二.tomcat简单 ...

  8. Apache Tomcat安装、配置、启动与后续操作步骤

    1.第一,我们在安装Apache Tomcat之前,我们首先安装和配置好jdk: 2.第二,我们要清楚自己的jdk版本.因为我们Apache Tomcat配置的成功的前提是版本相对应.在这里,博主是用 ...

  9. 环境部署(java安装和配置,Tomcat安装和配置)(tomcat下部署war包)

    1,上传环境部署安装包到服务器上 2,解压安装包,并部署java #  tar -xf jdk-8u201-linux-x64.tar.g # mkdir /usr/java # cp  jdk1.8 ...

最新文章

  1. 大连理工IIAU Lab提出SSLSOD:自监督预训练的RGB-D显著性目标检测模型(AAAI 22)
  2. 一个监控磁盘的nagios脚本
  3. SVD在推荐系统中的应用详解以及算法推导
  4. java 协程框架_GitHub - yaozhang0105/dactor: Dactor是基于Java的轻量级同步异步统一处理框架,基于协程思想构建...
  5. 从零开始配置服务器密码机的开发环境
  6. shell(希尔)排序
  7. [Web 开发] URL 的最大长度
  8. Spring Cloud学习(一)
  9. 微信小程序MQTT客户端的坑
  10. Ubuntu 如何定制桌面解放你的个性?
  11. 光遇自动弹琴脚本代码_光遇自动弹琴脚本
  12. Winner-Take-All Autoencoders ( 赢者通吃自编码器)
  13. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
  14. 如何用DAP仿真器下载程序
  15. Ubuntu 使用命令向QQ邮箱发送邮件
  16. 一小时学会使用Springboot整合沙箱环境支付宝支付(附源码)
  17. 全球与中国投影面料市场深度研究分析报告
  18. ffmpeg视频压缩命令
  19. 适合android平板的浏览器,安卓平板用哪个浏览器比较好
  20. 关于oracle RAC心跳线采用直连 还是交换机连接的建议

热门文章

  1. 欧氏空间内积定义_三、n维空间简介(6)矢量平移和测地线
  2. 修改SqlServer的登录密码
  3. 安装百分之80卡住_关注丨男子翻越高铁站台丢命,家属向铁路部门索赔80万!法院这样判...
  4. 山东大学 2020级数据库系统 实验七
  5. 【OpenCV 例程200篇】08. 图像的复制(np.copy)
  6. 改进型的时钟置换算法-解惑
  7. 用SQL语句查看数据库数据量的大小
  8. 听说全链路压测已经杀疯了?劝你别盲目!
  9. Pytest参数选项自由执行测试用例详解(二)
  10. gulp通过http-proxy-middleware开启反向代理,实现跨域