zoukankan      html  css  js  c++  java
  • servlet-过滤器

    <filter>
            <filter-name>filter</filter-name>
            <filter-class>com.study.filter.FilterTest</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>filter</filter-name>
            <url-pattern>/*</url-pattern><!-- 对所有servlet进行拦截 -->
        </filter-mapping>
        
        <filter>
            <filter-name>filter2</filter-name>
            <filter-class>com.study.filter.FilterTest2</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>filter2</filter-name>
            <url-pattern>*.do</url-pattern><!-- 针对别名为*.do结尾的servlet进行拦截 -->
        </filter-mapping>
        
        <filter>
            <filter-name>filter3</filter-name>
            <filter-class>com.study.filter.FilterTest3</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>filter3</filter-name>
            <url-pattern>/servlet.do</url-pattern><!-- 针对别名为servlet.do的servlet进行拦截 -->
        </filter-mapping>

    注意:/*表示对所有servlet请求进行拦截;
       *.do表示对别名为.do的servlet请求进行拦截,不要加“/”,会报错
       /servlet.do表示针对单个别名为servlet.do的servlet.do请求进行拦截
    生命周期:服务器启动到关闭
    作用:
      1.统一编码管理;
      2.session管理
      3.图片水印,和谐词汇
      4.权限管理等

    public class FilterTest implements Filter{
    
        @Override
        public void destroy() {
            System.out.println("destroy!1");
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            request.setCharacterEncoding("utf-8");
            response.setContentType("text/html;charset=utf-8");
            HttpSession session=((HttpServletRequest)request).getSession();
            //使用方法:设置编码格式,判断session是否失效
            if(session.getAttribute("uname")==null) {
                //如果session失效,则重新登陆
                ((HttpServletResponse)response).sendRedirect("/studyWeb/aJax.jsp");
            }else {
                //通过。执行用户请求的servlet
                chain.doFilter(request, response);//
            }
            //执行完用户请求的servlet后,回来继续执行以下代码 
            System.out.println("完成!!");
        }
        @Override
        public void init(FilterConfig arg0) throws ServletException {
            System.out.println("init");
        }
    }
  • 相关阅读:
    redis>lua脚本
    redis百万级数据存取
    spring之自定义注解
    spring>aop
    git的回退和撤销操作
    vue2.0 v-tap简洁(漏)版 (只解决300ms问题)
    JSONP原理小记
    前端模块加载规范AMD与CMD小记
    html状态码
    使用vue-cli开发时跨域问题
  • 原文地址:https://www.cnblogs.com/lastingjava/p/9902604.html
Copyright © 2011-2022 走看看