监视器和过滤器的总结

 

一、监视器部分

/**
 * @author lenovo
 * 监听器的使用:
 *    作用:
 *         监听作用域对象request、session、application的创建、销毁和更改
 *    使用:
 *        创建一个实现指定接口的java类
 *            监听request-->ServletRequestListener//监听request对象的创建和销毁
 *                 requestInitialized(ServletRequestEvent sre)//创建
 *                 requestDestroyed(ServletRequestEvent sre)//销毁
 *                 注意:
 *                    形参可以获得request和Servletcontext对象 
 *                    sre.getServletRequest();
 *                    sre.getServletContext();
 *                    
 *                    
 *            监听request数据-->ServletRequestAttributeListener//监听数据的状态     
 *                 attributeAdded(ServletRequestAttributeEvent srae)//增加数据
 *                 attributeRemoved(ServletRequestAttributeEvent srae)//移除数据
 *                 attributeReplaced(ServletRequestAttributeEvent srae)//更改数据
 *                 注意:
 *                    形参可以获得被监听的数据
 *                     srae.getName();//获得键名
		               srae.getValue();//获得数据
 *                
 *                 
 *            监听session-->HttpSessionListener//监听session的创建和销毁
 *                 sessionCreated(HttpSessionEvent se)//监听session创建
 *                 sessionDestroyed(HttpSessionEvent se)//监听session销毁
 *                 注意:
 *                    形参可以获取session对象
 *                    se.getSession();
 *           监听session数据-->HttpSessionAttributeListener//监听session的数据变化 
 *                 attributeAdded(HttpSessionBindingEvent se)
 *                 attributeRemoved(HttpSessionBindingEvent se)  
 *                 attributeReplaced(HttpSessionBindingEvent se)  
 *                 注意:
 *                  形参可以获取当前被监听的数据
 *                  se.getName();
		            se.getValue(); 
		            
		             
 *          监听application-->ServletContextListener//监听application的初始化和销毁
 *                 contextInitialized(ServletContextEvent sce)
 *                 contextDestroyed(ServletContextEvent sce)
 *                 注意:
 *                   形参可以获取application对象
 *                   sce.getServletContext();
 *          监听application数据--->ServletContextAttributeListener//监听application的数据变更        
 *                   attributeAdded(ServletContextAttributeEvent scab)
 *                   attributeRemoved(ServletContextAttributeEvent scab)
 *                   attributeReplaced(ServletContextAttributeEvent scab)
 *                   注意:
 *                      形参可以获取数据application
 *                      scab.getName();
		                scab.getValue();
		                
		                		                
 *        在web.xml中进行配置监听类
 *               <listener>
                      <listener-class>com.hpu.listener.TestListener</listener-class>
                 </listener>
 *        案例:
 *            统计在线人数
 *            统计网页浏览次数
 */

二、过滤器部分

/**
 * @author lenovo
 * 
 * 过滤器的使用
 *      作用:
 *         对服务器接收的请求资源和响应给浏览器的资源进行管理
 *         保护servlet
 *      使用:
 *         创建一个实现了Filter的普通Java
 *         覆写接口的方法 
 *               init方法:服务器启动即执行。资源初始化
 *               doFilter方法 :拦截请求的方法,在此方法中实现对资源的管理。
 *                      注意:
 *                         需要手动对请求进行放行。chain.doFilter(request, response);
 *               destory方法 :服务器关闭执行    
 *         在web.xml中配置过滤器
 *              <!--配置过滤器 -->
				   <filter>
				      <filter-name>myfilter</filter-name>
				      <filter-class>com.hpu.filter.MyFilter</filter-class>
				   </filter>
				   <filter-mapping>
				       <filter-name>myfilter</filter-name>
				       <url-pattern>/*</url-pattern>
				   </filter-mapping>
			     注意:
			     url-pattern:/*
			                                  表示拦截所有请求
			     url-pattern:*.do
			                                  表示拦截所有以do结尾的请求。一般用来进行模块拦截处理
			      url-pattern:/TestServlet
			                                  表示拦截指定URL的请求。针对某个servlet请求进行拦截。保护servlet
			     总结: 
			                过滤器程序员声明和配置,服务器根据请求中的uri信息调用  
			     执行:
			              浏览器发起请求到服务器,服务器接收到请求后,根据URI信息在web.xml找到对应的过滤器,
			              执行doFilter方法,该方法对此次请求进行处理后如果满足条件进行放行,放行后还有符合要求的过滤器则继续进行过滤
			              直到找到对应的servlet进行处理  ,servlet对请求处理后,也就是service方法结束后,还会继续返回响应的doFilter进行执行
			     案例:
			               同一编码格式处理 
			     session管理
			               权限管理 
			               资源管理(统一水印、词汇和谐)                                                 
 *            
 */
posted @ 2018-12-08 20:47  HPUGIS  阅读(294)  评论(0编辑  收藏  举报