研究web.xml分析总结。
先温习以下几个知识点
(1) web作用域: application:整个应用 对应servlet中ServletContext
新建web项目web.xmlsession:会话 对应servlet中HttpSession
request:一次请求 对应servlet中的HttpServletRequestpage:当前页面
自带的两个配置:<display-name> 和 <welcome-file-list>
<display-name>: display-name元素包含的就是XML编辑器显示的名称,与具体容器配置没多大关系。
<welcome-file-list>: 容器首页,即访问项目的时候的首页。
然后再看其他的一些配置:
一、error-page :自定义错误页面
在web.xml中有两种配置error-page的方法,一是通过错误码来配置,而是通过异常的类型来配置,分别举例如下:
(1). 通过错误码来配置error-page
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
上面配置了当系统发生找不到页面404错误时,跳转到错误处理页面error.jsp。
(2). 通过异常的类型配置error-page
<error-page>
<exception-type>java.lang.NullException</exception-type>
<location>/error.jsp</location>
</error-page>
上面配置了当系统发生java.lang.NullException时,跳转到错误处理页面error.jsp
二、<!-- spring监听 --><listener>
配置:
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
解析:
ContextLoaderListener extends ContextLoader implements ServletContextListener
ServletContextListener extends EventListener
ServletContextListener只负责监听Web容器的启动和关闭的事件。
ContextLoaderListener(或ContextLoaderServlet)将Web容器与Spring容器整合,RequestContextListener将Spring容器与Web容器结合的更加密切。
RequestContextListener implements ServletRequestListener
ServletRequestListener extends EventListener
ServletRequestListener监听HTTP请求事件,Web服务器接收的每次请求都会通知该监听器。
前者为必选配置,后者为可选配置,并且后者与scope="request"搭配使用。
三
<servlet>
<servlet-name>XXX</servlet-name>
<servlet-class>XXXServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xxxx</servlet-name>
<url-pattern>/xxx</url-pattern>
</servlet-mapping>
解释:上面这种当请求地址含有/xxx的时候,这个请求交给XXXServlet处理,这个标签涉及的功能群比较庞大。。
四:<jsp-config>,设置JSP页面属性
常用的属性有:
1.<description>:设定的说明
2.<display-name>:设定名称
3.<url-pattern>:设定值所影响的范围,如: /CH2 或 /*.jsp
4.<el-ignored>:若为 true,表示不支持 EL 语法
5.<scripting-invalid>:若为 true,表示不支持 <% scripting %>语法
6.<page-encoding>:设定 JSP 网页的编码
7.<include-prelude>:设置 JSP 网页的抬头,扩展名为 .jspf
8.<include-coda>:设置 JSP 网页的结尾,扩展名为 .jspf
五:<filter> 过滤器
如: <filter-name>Set Character Encoding</filter-name> 字符集过滤器
功能喝servlet 标签类似,但filter是在执行对应servlet之前执行,然后再执行servlet,如名:过滤器。liu
六:<session-config>
<session-config>
<session-timeout>40</session-timeout>
</session-config>
在Java Web开发中<session-config>,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间,这里设置的是40分钟)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。