Filter与Listener
来源:互联网 发布:韦东山linux视频第2期 编辑:程序博客网 时间:2024/06/16 22:49
Servlet过滤器Filter:
能够对Servlet容器的请求和响应对象进行检查和修改。
Servlet过滤器本身不生成请求和响应对象,它只提供过滤作用,
Servlet过滤器可以在Servlet被调用之前检查Request对象,修改Request Header和Request内容
在Servlet被调用之后检查Response对象,修改Response Header和Response内容。
Servlet过滤器负责过滤的web组件可以是Servlet、jsp或Html文件。
所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。
这个接口含有3个过滤器类必须实现的方法:
-- init(Filter Config)
-- doFilter(ServletRequest, ServletResponse, FilterChain)
-- destroy()
要在web.xml中配置过滤器:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
有些初始的界面不用过滤器来验证,方法是在LoginFilter类的doFilter()方法中:
HttpServletRequest r = (HttpServletRequest)request;
String requestURL = r.getRequestURL();
if(requestURL.endsWith("login.jsp") || requestURL.endsWith("MyLoginServlet")){
chain.doFilter(request, response);
return;
}
验证未登录时返回到登录界面,在LoginFilter类的doFilter()方法中:
HttpServletRequest r = (HttpServletRequest)request;
HttpSession session = r.getSession();
if(null == session.getAttribute("user")){
((HttpServletResponse)response).sendRedirect("login.jsp");
return;
} else {
chain.doFilter(request, response);
}
通过调用FilterConfig的getSevletContext()方法获得ServletContext,在调用ServletContext的getAttribute()方法业获得application范围内的共享数据。
Listener:Servlet监听器,可以监听客户端的请求、服务端的操作等,通过监听器,可以自动激发一些操作。
监听用户数量:当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1;
常用的监听接口有:
1>:ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性;
2>:ServletContextListener监听ServletContext。
当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;
当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法;
能够对Servlet容器的请求和响应对象进行检查和修改。
Servlet过滤器本身不生成请求和响应对象,它只提供过滤作用,
Servlet过滤器可以在Servlet被调用之前检查Request对象,修改Request Header和Request内容
在Servlet被调用之后检查Response对象,修改Response Header和Response内容。
Servlet过滤器负责过滤的web组件可以是Servlet、jsp或Html文件。
所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。
这个接口含有3个过滤器类必须实现的方法:
-- init(Filter Config)
-- doFilter(ServletRequest, ServletResponse, FilterChain)
-- destroy()
要在web.xml中配置过滤器:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
有些初始的界面不用过滤器来验证,方法是在LoginFilter类的doFilter()方法中:
HttpServletRequest r = (HttpServletRequest)request;
String requestURL = r.getRequestURL();
if(requestURL.endsWith("login.jsp") || requestURL.endsWith("MyLoginServlet")){
chain.doFilter(request, response);
return;
}
验证未登录时返回到登录界面,在LoginFilter类的doFilter()方法中:
HttpServletRequest r = (HttpServletRequest)request;
HttpSession session = r.getSession();
if(null == session.getAttribute("user")){
((HttpServletResponse)response).sendRedirect("login.jsp");
return;
} else {
chain.doFilter(request, response);
}
通过调用FilterConfig的getSevletContext()方法获得ServletContext,在调用ServletContext的getAttribute()方法业获得application范围内的共享数据。
Listener:Servlet监听器,可以监听客户端的请求、服务端的操作等,通过监听器,可以自动激发一些操作。
监听用户数量:当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1;
常用的监听接口有:
1>:ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性;
2>:ServletContextListener监听ServletContext。
当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;
当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法;
0 0
- Filter与Listener
- Filter与Listener
- Web-listener与filter
- Filter与Listener
- Filter与Listener使用案例
- 监听器Listener与过滤器Filter
- servlet,filter, listener, interceptor 区别与联系
- servlet,filter, listener, interceptor 区别与联系
- servlet/filter/listener/interceptor区别与联系
- servlet/filter/listener/interceptor区别与联系
- servlet/filter/listener/interceptor区别与联系
- servlet/filter/listener/interceptor区别与联系
- servlet/filter/listener/interceptor区别与联系
- servlet/filter/listener/interceptor区别与联系
- servlet/filter/listener/interceptor区别与联系
- servlet,filter, listener, interceptor 区别与联系
- servlet,filter, listener, interceptor 区别与联系
- servlet/filter/listener/interceptor区别与联系
- C10-3 字符串出现个数
- Spring Cloud和Spring boot的相关问题
- 数据结构经典算法学习之完全背包问题
- 数据库分库分表(sharding)系列(二) 全局主键生成策略
- 多个item的高度以最大的那个为准
- Filter与Listener
- leecode 解题总结:27 Remove Element
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
- JSTL表达式 <c:if 明明相等确不执行
- SQLyog Error Code: 2006 - MySQL 服务器已离线
- 表单验证有误信息回显
- nodejs中mysql的使用
- 面向对象高级特性1:抽象类
- 【WPF】ListBox无法滚动的问题