15. web.xml的配置

Posted 冷漠不是我的本意

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了15. web.xml的配置相关的知识,希望对你有一定的参考价值。

  这个文件是Tomcat工程中最基础也是最重要的配置文件,Tomcat启动项目的时候会加载并读取这个文件,所以很有必要弄懂这个文件。

XML声明和根元素 

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp">
……
</web-app>

  第一行是XML声明,它定义了XML的版本(1.0)和所使用的编码(UTF-8)

  第二行的<web-app></web-app>标签就是此文件的根元素,web.xml文件的最主要的配置信息就包含在这个标签之内,接下来就重点介绍这个标签所包含的内容。xml文件不仅对大小写敏感,而且对出现在其他元素中的次序敏感。所以标签大小写一定要使用正确,而且XML声明必须是文件中的第一项,DOCTYPE声明必须是第二项,而web-app元素必须是第三项。同样在web-app元素内,元素的次序也很重要。

 

Web应用配置

<icon>  
     <small-icon>/images/small_icon.gif</small-icon>  
     <large-icon>/images/large_icon.gif</large-icon>  
</icon>
<display-name>WEB</display-name>
<desciption>WEB Example</desciption>
<context-param>
     <param-name>name</para-name>
     <param-value>value</param-value>
     <description>description</description>
</context-param>

  <icon>标签指出IDE和GUI工具用来表示Web应用的大图标和小图标的位置

  <display-name>标签指出此Web应用的应用名称

  <desciption>对Web应用的一些描述信息

  <context-param>声明此应用范围内的初始化参数,这些参数可以再servlet类中通过getServletContext().getInitParameter("name")方法获取

 

filter过滤器

<filter>
      <filter-name>MyFilter</filter-name>
      <filter-class>com.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
      <filter-name>MyFilter</filter-name>
      <url-pattern> /main.jsp</url-pattern>   
</filter-mapping>
 <filter-mapping>
      <filter-name>MyFilter</filter-name>
      <url-pattern>/addProduct.jsp</url-pattern>   
</filter-mapping>

  <filter>标签内部配置过滤器,<filter-name>标签指定次过滤器的名字,<filter-class>标签指定此过滤器指向的类,此类必须实现javax.servlet.Filter接口。<filter-mapping>标签用来关联一个或多个servlet或jsp页面(/main.jsp和/addProduct.jsp)。注意无论有多少个<filter-mapping>,他们的<filter-name>必须和前面的名字一致。

 

listener监听器

 <listener>
     <listener-class>com.channel.http.SessionListener</listener-class>
 </listener>

  <listener>标签指定监听器,用于监听Web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后做出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。

 

servlet

<servlet>
      <servlet-name>yqzl</servlet-name>
      <servlet-class>
            com.channel.http.servlet.MainServlet
      </servlet-class>
      <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/springmvc-config.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>    
</servlet>

<servlet-mapping>
      <servlet-name>yqzl</servlet-name>
      <url-pattern>*.action</url-pattern>
</servlet-mapping>     

  <servlet>标签用于指定此Web应用的servlet相关配置,这个配置相当重要。<servlet-name>标签指定此servlet的名字,<servlet-class>指定servlet的类,这个类开发者可以自己写,一般会继承HttpServlet类,用来初始化整个Web项目和接受http请求并处理。<init-param>标签里面可以配置一些参数。
        <load-on-startup>标签指定当前Web应用启动时装载Servlet的次序,它的内容必须是整数,当这个数>=0时,容器会按数值从小到大依次加载。如果数值<0或没有指定,容器将在用户首次访问时加载这个servlet类。<servlet-mapping>标签可定义servlet映射,里面的<servlet-name>必须与前面的名字一致,<url-pattern>指定servlet映射的路径。
        在用Tomcat启动整个web项目时,当配置了<load-on-startup>标签并且里面的数字>=0时,会加载此servlet类,创建类的实例,调用init()方法初始化<init-param>标签里面的配置信息,此初始化在整个servlet生命周期中只会进行一次。如果未配置<load-on-startup>标签或数字<0时,Tomcat启动时不会加载此servlet类,当然也就不会调用init()方法进行初始化,当用户首次访问时会加载类并初始化,所以此时第一次访问时可能会加载很慢。这里仅简单介绍标签的作用,以后我会详细介绍这个servlet类以及与其相关的几个比较重要的类和接口。

 

session配置

 <session-config>
  <session-timeout>10</session-timeout>
 </session-config>

  <session-config>标签用于设置浏览器与服务器之间会话(交互)时长的间隔,以分钟为单位。用户访问Web项目时,会与服务器之间建立一个session,当用户长时间未与服务器信息交互而超过这个时长时,服务器会销毁这个session,释放占用的内存空间,当用户再次在原来的session访问时会失效,需要重新建立新的session。除了可以设置这个标签之外,还可通过HttpSession的setMaxInactiveInterval()方法设置单个会话对象的超时值。

 

其他配置

  参考https://www.cnblogs.com/hafiz/p/5715523.html  

 

以上是关于15. web.xml的配置的主要内容,如果未能解决你的问题,请参考以下文章

maven web项目的web.xml报错The markup in the document following the root element must be well-formed.(代码片段

简单的web.xml配置代码

最新的web.xml配置代码

serverlet Web.xml配置代码解释

配置ssm 时, web.xml 文件无 # 自动代码提示

VSCode自定义代码片段15——git命令操作一个完整流程