web.xml 配置随笔

一个web项目的启动,首先初始化web.xml文件:

<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

1、在启动Web项目时,容器会读web.xml配置文件中的两个节点<listener>和<contex-param>。

2、接着容器会创建一个ServletContext(上下文),应用范围内即整个WEB项目都能使用这个上下文。

3、接着容器会将读取到<context-param>转化为键值对,并交给ServletContext。

4、容器创建<listener></listener>中的类实例,即创建监听(备注:listener定义的类可以是自定义的类但必须需要继承ServletContextListener)。

5、在监听的类中会有一个contextInitialized(ServletContextEvent event)初始化方法,在这个方法中可以通过event.getServletContext().getInitParameter("contextConfigLocation") 来得到context-param 设定的值。在这个类中还必须有一个contextDestroyed(ServletContextEvent event) 销毁方法.用于关闭应用前释放资源,比如说数据库连接的关闭。

6、得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早。

加载完成之后就可以使用:

前端界面使用:${initParam.contextConfigLocation}

后端代码使用:String paramValue=getServletContext().getInitParameter("contextConfigLocation")


7、过来器的配置

1)、request过滤器,直接访问资源是,会被拦截过来

<filter>
    <span style="white-space:pre">	</span><filter-name>myFilter</filter-name>
    <span style="white-space:pre">	</span><filter-class>xx.MyFilter</filter-class>
</filter>
<filter-mapping>
<span style="white-space:pre">	</span><filter-name>myFilter</filter-name>
<span style="white-space:pre">	</span><servlet-name>目标资源一</servlet-name>
</filter-mapping>

2)、forward 过滤器,转发访问资源二时,会拦截,直接访问资源二不会被拦截

<filter>myFilter</filter>
    <filter-name>myFilter</filter-name>
    <filter-class>xx.MyFilter</filter-class>
</filter>
<filter-mapping>
<span style="white-space:pre">	</span><filter-name>myFilter</filter-name>
<span style="white-space:pre">	</span>servlet-name>目标资源一</servlet-name>
<span style="white-space:pre">	</span><dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<span style="white-space:pre">	</span><filter-name>myFilter</filter-name>
<span style="white-space:pre">	</span><servlet-name>目标资源二</servlet-name>
<span style="white-space:pre">	</span><dispatcher>FORWARD</dispatcher>
</filter-mapping>


3)、include 过滤器 ,包含资源则拦截过滤,直接访问则不会被拦截。

<filter-mapping>
<span style="white-space:pre">	</span><filter-name>myFilter</filter-name>
<span style="white-space:pre">	</span><servlet-name>目标资源二</servlet-name>
<span style="white-space:pre">	</span><dispatcher>INCLUDE</dispatcher>
</filter-mapping>


4)error 过滤器, 在访问资源不存在时,会返回 404 错误,如果给 404 代码定义一个错误界面,那么当错误发生时,会访问该界面

<filter-mapping>
<span style="white-space:pre">	</span><filter-name>myFilter</filter-name>
<span style="white-space:pre">	</span><url-pattern>/error.jsp</url-pattern>
<span style="white-space:pre">	</span><dispatcher>ERROR</dispatcher>
</filter-mapping>
<error-page>
    <error-code>404</error-code>
    <location>/error.jsp</location>
</error-page>

8、配置 首界面

<welcome-file-list>
	<welcome-file>wellcome.jsp</welcome-file>
</welcome-file-list>








你可能感兴趣的:(web.xml 配置随笔)