web.xml详细组件
- web.xml 是web应用的描述文件, 它支持的元素及属性来自于Servlet 规范定义 。 在Tomcat 中, Web 应用的描述信息包括 tomcat/conf/web.xml 中默认配置 以及 Web应用 WEB-INF/web.xml 下的定制配置。
因为web.xml组件实在是太多了,挑点常用的重要的讲解
在默认安装目录下的web.xml文件中,可以修改默认的欢迎页面名称
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
下面主要写WEB-INF/web.xml 下的定制配置
会话配置
- 用于配置Web应用会话,包括 超时时间、Cookie配置以及会话追踪模式。它将覆盖server.xml 和 context.xml 中的配置。,这一段放到web.xml最下边就行了
会话交互的过程:
- 因为客户端访问web服务器发送的http请求是无状态的,什么是无状态就是,web服务器无法判断是不是同一个人再次发送请求,于是web端有了session,客户端游览器有了cookie,当用户访问的时候web端会记录一个登陆信息在session里,用户第一次访问web服务器,web服务器记录好session会向游览器响应一个JSESSIONID,保存在用户游览器,也就是cookie,当用户再次发送请求访问游览器,携带JSESSIONID,游览器就知道是同一个人
<session‐config> <session‐timeout>30</session‐timeout> <cookie‐config> <name>JESSIONID</name> <domain>www.itcast.cn</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>
配置解析:
- session‐timeout : 会话超时时间,单位 分钟,这里我们配置了30分钟
- cookie‐config: 用于配置会话追踪Cookie
- name:Cookie的名称
- domain:Cookie的域名
- path:Cookie的路径
- comment:注释
- http‐only:cookie只能通过HTTP方式进行访问,JS无法读取或修改,此项可以增加网站访问的安全性。
- secure:此cookie只能通过HTTPS连接传递到服务器,而HTTP 连接则不会传递该信息。注意是从浏览器传递到服务器,服务器端的Cookie对象不受此项影响。写true就是只有https的请求携带上面的信息,这里写了false
- max‐age:以秒为单位表示cookie的生存期,默认为‐1表示是会话Cookie,浏览器关闭时就会消失。
- tracking‐mode :用于配置会话追踪模式,Servlet3.0版本中支持的追踪模式:COOKIE、URL、SSL
- COOKIE : 通过HTTP Cookie 追踪会话是最常用的会话追踪机制, 而且Servlet规范也要求所有的Servlet规范都需要支持Cookie追踪。
- URL : URL重写是最基本的会话追踪机制。当客户端不支持Cookie时,可以采用URL重写的方式。当采用URL追踪模式时,请求路径需要包含会话标识信息,Servlet容器
会根据路径中的会话标识设置请求的会话信息。如:
http://www.myserver.com/user/index.html;jessionid=1234567890。
- SSL : 对于SSL请求, 通过SSL会话标识确定请求会话标识。
配置好可以验证一下:
Servlet配置
Servlet 的配置主要是两部分, servlet 和 servlet-mapping是servlet的映射配置 :
<servlet> <servlet-name>myServlet</servlet-name> <servlet-class>cn.itcast.web.MyServlet</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>/myservet/*</url-pattern> </servlet-mapping>
配置说明:
- servlet‐name : 指定servlet的名称, 该属性在web.xml中唯一。
- servlet‐class : 用于指定servlet类名
- init‐param: 用于指定servlet的初始化参数, 在应用中可以通过HttpServlet.getInitParameter 获取。这个里的参数只针对当前的servlet
- load‐on‐startup: 用于控制在Web应用启动时,Servlet的加载顺序。 值小于0,web应用启动时,不加载该servlet, 第一次访问时加载。
- enabled: true , false 。 若为false ,表示Servlet不处理任何请求。
- url‐pattern: 用于指定URL表达式,一个 servlet‐mapping可以同时配置多个 url‐pattern。
Listener配置
- Listener用于监听servlet中的事件,例如context、request、session对象的创建、修改、删除,并触发响应事件。Listener是观察者模式的实现,在servlet中主要用于对context、request、session对象的生命周期进行监控。在servlet2.5规范中共定义了8Listener。在启动时,ServletContextListener 的执行顺序与web.xml 中的配置顺序一致, 停止时执行顺序相反。
<listener> <listener‐ class>org.springframework.web.context.ContextLoaderListener</listener‐ class> </listener>
Filter配置
- filter 用于配置web应用过滤器, 用来过滤资源请求及响应。 经常用于认证、日志、加密、数据转换等操作, 配置如下:
<filter> <filter‐name>myFilter</filter‐name> <filter‐class>cn.itcast.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>
配置说明:
- filter‐name: 用于指定过滤器名称,在web.xml中,过滤器名称必须唯一。
- filter‐class : 过滤器的全限定类名, 该类必须实现Filter接口。
- async‐supported: 该过滤器是否支持异步
- init‐param :用于配置Filter的初始化参数,可以配置多个,可以通过FilterConfig.getInitParameter获取
- url‐pattern: 指定该过滤器需要拦截的URL。
错误页面配置
- error-page 用于配置Web应用访问异常时定向到的页面,支持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.jsp</location> </error‐page>
继续阅读

我的微信
这是我的微信扫一扫
评论