zoukankan      html  css  js  c++  java
  • filter拦截器解决中文乱码问题

    拦截器的初始化配置方法:
        在web.xml文件当中添加下面的代码
    <filter>
            <filter-name>SetEncodeFilter</filter-name>
            <filter-class>com.pk.mylogin.filter.SetEncodeFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>SetEncodeFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    filter-name拦截器的名称,filter-class拦截器的java类,必须是包名+java名称;
    filter-mapping当中配置标签当中,filter-name必须和filter标签当中的name一致;
    url-pattern表示浏览器访问的地址
     
    1、filter当中对应的java类应当实现(implements)filter类,import javax.servlet.Filter;
        意filter类是哪个
    2、在dofilter方法当中添加下面的代码:
        request.setCharacterEncoding("utf-8");
        chain.doFilter(request, response);
    3、要想实现对post和get请求都有效那么在tomcat服务器修改配置文件添加
        
     
    具体的filter文件为:
    package com.pk.mylogin.filter;
    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    public class SetEncodeFilter implements Filter {
        public void destroy() {
        }
        public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {
            System.out.println("拦截器被调用");
                request.setCharacterEncoding("utf-8");
                chain.doFilter(request, response);
        }
        public void init(FilterConfig arg0) throws ServletException {
        }
    }
     
    也可以再filter当中控制没有登录的用户,自动跳转到登录页面
    在filter文件当中添加跳转
    User user = (User) request.getAttribute("user");
            if (user == null) {
                request.getRequestDispatcher("/login.jsp").forward(request, response);
                return ;
            }




  • 相关阅读:
    JavaEE基础(01):Servlet实现方式,生命周期执行过程
    Spring 框架基础(06):Mvc架构模式简介,执行流程详解
    Spring 框架基础(05):事务管理机制,和实现方式
    多线程搜索与排序
    mybatis的Mapper代理原理
    spring的RestTemplate使用指南
    探索CAS无锁技术
    两年Java的面试经验
    HashMap多线程并发的问题
    解析Mybaits的insert方法返回数字-2147482646的原因
  • 原文地址:https://www.cnblogs.com/babyhhcsy/p/2985821.html
Copyright © 2011-2022 走看看