web.xml是web应用的描述文件,它支持的元素及属性来自Servlet的规范定影。在tomcat中,web应用的描述信息包括tomcat/conf/web.xml中默认配置以及web应用中的WEB-INF/web.xml下的定制配置。WEB-INF/web.xml下的标签很多,接下来介绍几个比较重要的标签。
1. ServletContext初始化参数
我们可以通过<context-param>添加ServletContext初始化参数,它配置了一个键值对,这样我们可以在应用程序中使用javax.servlet.ServletContext.getInitParameter()方法获取参数。
以下是Spring项目的配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
<description>Spring config File Location</description>
</context-param>
接下来我们自定义context-param,在servlet中获取并使用该参数
1. 配置:
<context-param>
<param-name>zoudmTest</param-name>
<param-value>test1001</param-value>
</context-param>
2. 在servlet中获取该参数
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String str = request.getServletContext().getInitParameter("zoudmTest");
System.out.println("context-param = " + str);
}
运行结果如图:
2. session-config会话配置
会话是服务器与浏览器建立的一个链接。<session-config>用于配置web应用会话,包括超时时间、cookie配置以及会话追踪模式,他将覆盖server.xml和context.xml中的配置。
<session-config>
<session-timeout>30</session-timeout>
<cookie-config>
<name>JESSIONID</name>
<domain>localhost</domain>
<path>/</path>
<comment>session Cookie</comment>
<http-only>true</http-only>
<secure>false</secure>
<max-age>3600</max-age>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
配置解析:
1)session-timeout:会话超时时间,单位分钟
2)cookie-config:用于配置会话追踪Cookie
1. name:cookie的名称
2. domain:Cookie的域名
3. path:Cookie的路径
4. comment:注释
5. http-only:cookie只能以http方式进行访问,js无法获取或修改,此项配置可以增加网络访问的安全性。
6. secure:此cookie只通过HTTPS连接传到服务器,HTTP连接不会传递该信息。
注意:从浏览器传递到服务器,服务器端的cookie对象不受此项影响。
7. max-age:以秒为单位表示cookie的生存期,默认为-1,表示是会话cookie,浏览器关闭时就会消失
3)tracking-mode:用于配置会话追踪模式,Servlet3.0版本中支持追踪模式:COOKIE、URL、SSL
1. COOKIE:通过HTTP COOKIE追踪会话是最常用的会话追踪机制,而且Servlet规范也要求所有的Servlet规范都需要支持COOKIE追踪。
2. URL:URL重写是最基本的会话追踪机制,当客户端不支持COOKIE时,可以采用URL重写的方式,当采用该方式的时候,请求路径需要包含会话标识信息,Servlet容器会根据路径中的会话标识设置请求的会话信息。
例如:http://localhost/user/index.html;jessionid=123456789
3. SSL :对于SSL请求,通过SSL会话标识确定请求会话标识。
3. Servlet配置
servlet配置主要是两部分,servlet和servlet-mapping
servlet标签用于配置servlet的具体类,servlet-mapping标签用于配置servlet的请求路径,除了基本的配置以外,还有一些其他的配置,例如:
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.bjc.web.servlet.UserServlet</servlet-class>
<init-param>
<param-name>fileName</param-name>
<param-value>init.conf</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<enabled>true</enabled>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>*.do</url-pattern>
<url-pattern>/myServlet/*</url-pattern>
</servlet-mapping>
配置解析:
1)servlet-name:指定servlet的名称,该属性在web.xml中唯一。
2)servlet-class:用于指定servlet的类名
3)init-param:初始化参数配置,指针对当前servlet有效,在应用中可以通过HttpServlet.getInitParameter获取。
4)load-on-startup:用于控制web应用启动时,当前servlet的加载顺序,值小于0,web应用启动的时候不加载该servlet,那么什么时候加载了?在第一次访问的时候在加载。当值大于等于0的时候,表示应用层启动的时候就加载。
5)enabled:值为true、false。false表示servlet不处理任何请求
4. Listener配置
Listener用于监听servlet中的事件,例如:context、request、session对象的创建,修改,删除,并触发响应事件。Listener是观察者模式的实现,在servlet中主要用于对context、request、session对象的生命周期进行监控。
在Servlet2.5规范中定义了8种Listener。在启动时,ServletContextListener的执行顺序与web.xml中配置的执行顺序一致,停止时执行顺序相反。
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
5. Filter配置
filter用于配置web应用过滤器,用来过滤资源请求及响应。经常用于认证、日志、加密、数据转换等操作,配置如下:
<filter>
<filter-name>myFilter</filter-name>
<filter-class>com.bjc.web.MyFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>language</param-name>
<param-value>CN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置说明:
1)filter-name:用于指定过滤器的名称,在web.xml中,过滤器的名称唯一
2)filter-class:过滤器的全限定名,该类必须实现Filter接口
3)async-supported:该顾虑器是否支持异步
4)init-param:用户配置Filter的初始化参数,可以配置多个,可以通过FilterConfig.getInitParameter来获取
5)url-pattern:指定过滤器要拦截的url
6. 欢迎页面配置
welcome-file-list 用于指定web应用的欢迎文件列表
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
尝试请求的顺序,从上到下。
注意:如果在tomcat的安装文件的web.xml中有配置欢迎页面,那么在web应用的web.xml中就可以继承这个配置。如果在web应用的web.xml中配置了欢迎页面,则会覆盖tomcat中配置的欢迎页面。
7. 错误页面配置
error-page用于配置web应用访问异常时定向到的页面,支持HTTP响应码和异常类两种形式。
HTTP响应码方式:
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page><error-page>
<error-code>500</error-code>
<location>/500.html</location>
</error-page>
异常类型方式:
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.html</location>
</error-page>
来源:CSDN
作者:武汉小喽啰
链接:https://blog.csdn.net/weixin_43318134/article/details/104086940