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>
    

      

  • 相关阅读:
    Editor REST Client
    log配置
    spring-boot-configuration-processor
    http请求
    做项目用到的一些正则表达式,贴出来共享
    批量插入的实现
    sql执行顺序对比
    Java常用的并发工具类:CountDownLatch、CyclicBarrier、Semaphore、Exchanger
    spring中bean的生命周期
    多属性的对象列表的两种排序方法
  • 原文地址:https://www.cnblogs.com/ww103/p/12079152.html
Copyright © 2011-2022 走看看