网站建设及推广外包,wordpress电子邮箱,建设银行北海分行网站,零陵区住房和城乡建设局网站首页1、什么是Filter
Filter可认为是Servlet的一种特殊用法#xff0c;主要是对用户发起的请求进行预处理或后处理#xff0c;意思就是在请求到达用户想请求的地址之前先进入Filter#xff0c;或者在离开用户请求之后进入Filter。Filter类似于门卫#xff0c;你在进入之前门卫…1、什么是Filter
Filter可认为是Servlet的一种特殊用法主要是对用户发起的请求进行预处理或后处理意思就是在请求到达用户想请求的地址之前先进入Filter或者在离开用户请求之后进入Filter。Filter类似于门卫你在进入之前门卫需要盘查你身份合法进入身份不合法拦截。
1.1、Filter过滤器的使用场景
1、对用户的请求进行统一认证适合做权限管理。
2、对请求和响应进行加密处理。
3、对用户发送的请求或者响应的数据进行过滤处理。
4、对所有用户的请求或者响应进行记录可以进行日志管理。
2、Filter的使用方式
说明1Filter的使用需要实现Filter接口并重写doFilter方法
说明2导包信息import javax.servlet.Filter;
说明3当用户正在进行登录的时候需要放行。
2.1、创建Filter
public class LoginFilter implements Filter{//销毁方法public void destroy() {}public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {//将ServletRequest转化成HttpServletRequestHttpServletRequest request(HttpServletRequest)servletRequest;HttpServletResponse response(HttpServletResponse)servletResponse;//获取当前用户的请求地址String urlrequest.getRequestURI();//如果请求的地址中包含login,就放行//如果用户正在通过login.jsp或者请求login.do进行登录要放行。if(url.indexOf(login)-1){//放行filterChain.doFilter(request, response);return ;}HttpSession sessionrequest.getSession();String username(String)session.getAttribute(username);//如果username值为空说明没有登录因为登录成功后会将用户信息保存在session中。if(username!null){//放行filterChain.doFilter(request, response);return ;}//如果没有登录转发到login.jsprequest.getRequestDispatcher(login.jsp).forward(request, response);}Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}2.2、在web.xml中配置Filter信息
!-- 自定义过滤器 --filterfilter-name LoginFilter /filter-namefilter-classcom.it.filter. LoginFilter /filter-class/filterfilter-mappingfilter-name LoginFilter /filter-nameurl-pattern/*/url-pattern
/filter-mapping