一、过滤器Filter
1.什么是过滤器
- 在请求到达服务器资源(servlet/jsp)之前 , 过滤器可以拦截某些请求
- 在过滤器中就可以添加一些相应的代码处理,可以减少代码冗余
2.web.xml配置过滤器
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>pro.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>isloginFilter</filter-name>
<filter-class>pro.filter.IsLOginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>isloginFilter</filter-name>
<url-pattern>/success.jsp</url-pattern>
</filter-mapping>
3.验证用户是否已经登录
public class IsLOginFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)servletRequest;
String name = (String)request.getSession().getAttribute("account");
if (name==null){
HttpServletResponse response = (HttpServletResponse)servletResponse;
response.sendRedirect("login.jsp");
}else{
filterChain.doFilter(servletRequest, servletResponse);
}
}
}
4.过滤器生命周期
- init() 在服务器启动时执行
- destroy() 在服务器关闭时销毁
二、监听器Listener
1.什么是监听器
- 用于监听ServletContext,HttpSession和ServletRequest等域对象的创建与销毁,以及对象中属性的修改
2.web.xml配置监听器
<listener>
<listener-class>pro.listener.ObjectListener</listener-class>
</listener>
<listener>
<listener-class>pro.listener.Attrlistener</listener-class>
</listener>
3.过滤器生命周期