zoukankan      html  css  js  c++  java
  • 过滤器复用代码【中文乱码、HTML转义】

    中文乱码

    
    public class CharacterEncodingFilter implements Filter {
    
    
        public void doFilter(ServletRequest req, ServletResponse resp,
                FilterChain chain) throws IOException, ServletException {
    
    
            HttpServletRequest request = (HttpServletRequest) req;
            HttpServletResponse response = (HttpServletResponse) resp;
    
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
    
            chain.doFilter(new MyRequest(request), response);
    
    
        }
    
        public void init(FilterConfig filterConfig) throws ServletException {
            // TODO Auto-generated method stub
    
        }
    
        public void destroy() {
            // TODO Auto-generated method stub
    
        }
    }
    
    class MyRequest extends HttpServletRequestWrapper{
        private HttpServletRequest request;
        public MyRequest(HttpServletRequest request) {
            super(request);
            this.request = request;
    
        }
        @Override
        public String getParameter(String name) {
    
            String value = this.request.getParameter(name);
            if(value==null){
                return null;
            }
            if(!this.request.getMethod().equalsIgnoreCase("get")){
                return value;
            }
            try {
                value = new String(value.getBytes("iso8859-1"),"UTF-8");
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException(e);
            }
            return value;
        }
    }

    过滤HTML

    public class HtmlFilter implements Filter {
    
    
        public void doFilter(ServletRequest req, ServletResponse resp,
                FilterChain chain) throws IOException, ServletException {
    
            HttpServletRequest request = (HttpServletRequest) req;
            HttpServletResponse response = (HttpServletResponse) resp;
    
            chain.doFilter(new MyRequest2(request), response);
    
        }
    
        public void destroy() {
            // TODO Auto-generated method stub
        }
    
        public void init(FilterConfig filterConfig) throws ServletException {
            // TODO Auto-generated method stub
        }
    
    }
    class MyRequest2 extends HttpServletRequestWrapper{
    
        private HttpServletRequest request;
        public MyRequest2(HttpServletRequest request) {
            super(request);
            this.request = request;
        }
        @Override
        public String getParameter(String name) {
    
            String value = this.request.getParameter(name);
            if(value==null){
                return null;
            }
            return filter(value);
        }
    
        public String filter(String message) {
    
            if (message == null)
                return (null);
    
            char content[] = new char[message.length()];
            message.getChars(0, message.length(), content, 0);
            StringBuffer result = new StringBuffer(content.length + 50);
            for (int i = 0; i < content.length; i++) {
                switch (content[i]) {
                case '<':
                    result.append("&lt;");
                    break;
                case '>':
                    result.append("&gt;");
                    break;
                case '&':
                    result.append("&amp;");
                    break;
                case '"':
                    result.append("&quot;");
                    break;
                default:
                    result.append(content[i]);
                }
            }
            return (result.toString());
    
        }
    
    
    }
    如果您觉得这篇文章帮助到了您,可以给作者一点鼓励



  • 相关阅读:
    利用JAVACC实现简单的四则运算
    pygeoip 以及dpkt模块 进行数据包分析与定位
    Pexpect 模块登录ssh以及pxssh模块暴力破解ssh密码
    python socket模块,nmap模块实现端口扫描器以及编码问题
    python zipfile模块和optparse模块暴力破解zip文件
    programming language part b 第一周作业
    python 实现简单爬虫
    Python 图像转字符画
    最大堆的ADT实现
    programming language part a 第五周总结
  • 原文地址:https://www.cnblogs.com/zhong-fucheng/p/7203011.html
Copyright © 2011-2022 走看看