ServletContext listener filter servlet 之web.xml

习时,偶得,记之
ServletContext -> context-param -> listener -> filter -> servlet
录序无关乎载序
1.servletContext

创建:服务器启动的时候,会为托管的每一个web应用程序,创建一个ServletContext对象

销毁:从服务器移除托管,或者是关闭服务器。

2.listener

Listener的中文译名为监听器,从字面上可以看出Listener主要用来监听之用。通过Listener可以监听容器中某一执行动作,并根据其要求做出相应的响应。

到目前Servlet 2.4开始,一共包含八个Listener接口,可以将其分为三类,分别如下。
第一类:与ServletContext有关的Listener接口。
包括两个Listener接口,分别是ServletContextListener和ServletContextAttributeListener。
第二类:与HttpSession有关的Listener接口。
包括四个Listener接口,分别是HttpSessionListener、HttpSessionAttributeListener、HttpSessionBindingListener和HttpSessionActivationListener。
第三类:与ServletRequest有关的Listener接口。
包括两个Listener接口,分别是ServletRequestListener和ServletRequestAttributeListener。

			2 ServletContext Listener
			ServletContext Listener包含两个Listener接口,分别是ServletContextListener和ServletContextAttributeListener。其中ServletContextListener接口用来实现ServletContext的启动和销毁监听;ServletContextAttributeListener接口用来实现application范围属性变化的监听。
			
			2.1 ServletContextListener接口
			ServletContextListener接口用来实现ServletContext的启动和销毁监听。该接口中包含两个方法,一个是contextInitialized()方法,用来监听ServletContext的启动和初始化;一个是contextDestroyed()方法,用来监听ServletContext的销毁。在这两个方法中还包含一个参数sce,其类型为ServletContextEvent。通过ServletContextEvent对象的 getServletContext()方法可以获得ServletContext对象。
			
			2.2 ServletContextAttributeListener接口
			ServletContextAttributeListener接口用来实现application范围属性变化的监听。该接口中包含三个方法,一个是attributeAdded()方法,用来监听application范围属性的添加;一个是attributeReplaced()方法,用来监听application范围属性的替换;一个是attributeRemoved()方法,用来监听application范围属性的移除。在这两个方法中还包含一个参数scab,其类型为ServletContextAttributeEvent。通过ServletContextAttributeEvent对象的getName()方法可以获得属性的名称;通过ServletContextAttributeEvent对象的getValue()方法可以获得属性的值。
			
			3 HttpSession Listener
			HttpSession Listener包含四个Listener接口,分别是HttpSessionListener、HttpSessionAttributeListener、HttpSessionBindingListener和HttpSessionActivationListener。其中HttpSessionListener接口用来实现sesion的初始化和销毁监听;HttpSessionAttributeListener接口用来实现session范围属性变化的监听。
			
			3.1 HttpSessionListener接口
			HttpSessionListener接口用来实现session的初始化和销毁监听。该接口中包含两个方法,一个是sessionCreated()方法,用来监听session的创建和初始化;一个是sessionDestroyed()方法,用来监听session的销毁。在这两个方法中还包含一个参数se,其类型为HttpSessionEvent。通过HttpSessionEvent对象的getSession()方法可以获得session对象。
			
			3.2 HttpSessionAttributeListener接口
			HttpSessionAttributeListener接口用来实现session范围属性变化的监听。该接口中包含三个方法,一个是attributeAdded ()方法,用来监听session范围属性的添加;一个是attributeReplaced()方法,用来监听session范围属性的替换;一个是attributeRemoved()方法,用来监听session范围属性的移除。在这三个方法中还包含一个参数se,其类型为HttpSessionBindingEvent。通过HttpSessionBindingEvent对象的getName()方法可以获得属性的名称;通过ServletContextAttributeEvent对象的getValue()方法可以获得属性的值。

3.filter
(1)所谓的过滤器,就是拦截用户对资源的访问
(2)一个过滤器可以拦截多个资源,一个资源也可以配置多个过滤器进行拦截
(3)其实所谓的拦截,就是将代表请求的request对象和代表响应的response对象拦截下来,拦截下来后:
①控制是否允许访问 – 比如:用户登陆之后才能访问自己的订单或购物车
②在访问资源之前或之后做一些处理 比如: 全站乱码解决

<!-- 配置过滤器所拦截的资源路径 -->
 <filter> 
 		 <filter-name>FilterDemo1</filter-name> 
		 <filter-class>com.tedu.servlet.FilterDemo1</filter-class>
</filter>
 <filter-mapping> 
		 <filter-name>FilterDemo1</filter-name> 
	 	 <url-pattern>/ServletDemo1</url-pattern>
  </filter-mapping>

4.servlet

命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖一命名的,命名必须在定制URL前。下面拿serlet来举例:

(1)、为Servlet命名:

servlet1
net.test.TestServlet

(2)、为Servlet定制URL、

servlet1
*.do

猜你喜欢

转载自blog.csdn.net/weixin_43671743/article/details/89052511