zoukankan      html  css  js  c++  java
  • 过滤器的两个应用

    一、设置编码格式

    编码过滤器

    package com.bjsxt.filter;
    
    import javax.servlet.*;
    import java.io.IOException;
    
    /**
     * @program: JavaEE
     * @description
     *
     * @author: wuhao
     * @create: 2019-12-12 15:48
     **/
    //编码的过滤
    public class EndFilter implements Filter {
       String endcoding;
       @Override
        public void init(FilterConfig config) throws ServletException {
           //先获得全局
          endcoding = config.getServletContext().getInitParameter("endcoding");
       }
        @Override
        public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
            //处理请求
            req.setCharacterEncoding(endcoding);
             //放行
            chain.doFilter(req, resp);
            //处理响应
        }
        @Override
        public void destroy() {
        }
    
    
    
    }
    

    WEB.xml的配置

      <context-param>
            <param-name>endcoding</param-name>
            <param-value>UTF-8</param-value>
        </context-param>
       <filter>
           <filter-name>EndFilter</filter-name>
           <filter-class>com.bjsxt.filter.EndFilter</filter-class>
       </filter>
        <filter-mapping>
            <filter-name>EndFilter</filter-name>
            <url-pattern>/servlet/*</url-pattern>  //只要是这个路径的请求都会经过编码的过滤器
        </filter-mapping>
    

     二、验证登陆(用户没有登陆,就无法直接访问项目的其他页面)

    package com.bjsxt.filter;
    
    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * @program: JavaEE
     * @description
     * @author: wuhao
     * @create: 2019-12-12 16:54
     **/
    public class LoginFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    //先转换 获得 req和resp HttpServletRequest req=(HttpServletRequest)servletRequest; HttpServletResponse resp=(HttpServletResponse)servletResponse; //判断session是否为空 Object employee = req.getSession().getAttribute("employee"); String requestURI = req.getRequestURI(); String queryString = req.getQueryString(); //先判断是否是登陆的请求是的话就放行 if ("/sxtoa/login.jsp".equals(requestURI)||"/sxtoa/servlet/EmplpyeeServlet?method=login".equals(requestURI+"?"+queryString)){ //放行 filterChain.doFilter(req,resp); }else { if (employee==null){ //重定向到登陆页面 resp.sendRedirect(req.getContextPath()+"/login.jsp"); }else { //放行 filterChain.doFilter(req,resp ); } } } @Override public void destroy() { } }

      Web.xml的配置

        <filter>
            <filter-name>LoginFilter</filter-name>
            <filter-class>com.bjsxt.filter.LoginFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>LoginFilter</filter-name>
            <url-pattern>/servlet/*</url-pattern>
            <url-pattern>*.jsp</url-pattern>
            <url-pattern>*.html</url-pattern>
        </filter-mapping>
    

      

  • 相关阅读:
    吴裕雄--天生自然C++语言学习笔记:C++ 引用
    吴裕雄--天生自然C++语言学习笔记:C++ 指针
    吴裕雄--天生自然C++语言学习笔记:C++ 字符串
    吴裕雄--天生自然C++语言学习笔记:C++ 数组
    吴裕雄--天生自然C++语言学习笔记:C++ 数字
    吴裕雄--天生自然C++语言学习笔记:C++ 函数
    吴裕雄--天生自然C++语言学习笔记:C++ 判断
    HiHoCoder1671 : 反转子串([Offer收割]编程练习赛41)(占位)
    HihoCoder1670 : 比赛日程安排([Offer收割]编程练习赛41)(模拟)
    POJ3417Network(LCA+树上查分||树剖+线段树)
  • 原文地址:https://www.cnblogs.com/ww103/p/12079152.html
Copyright © 2011-2022 走看看