码迷,mamicode.com
首页 > 其他好文 > 详细

代理模式的相关使用

时间:2016-05-29 09:44:36      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

 本例子主要是处理request编码问题

 

public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        final HttpServletRequest request1=(HttpServletRequest) request;
        request.setCharacterEncoding("utf-8");
        //创建代理对象
        HttpServletRequest p=(HttpServletRequest) Proxy.newProxyInstance(request1.getClass().getClassLoader(),
                new Class[]{HttpServletRequest.class}
                ,new InvocationHandler() {
                    
                    public Object invoke(Object proxy, Method method, Object[] args)
                            throws Throwable {
                        Object returnValue=null;
                        String m=method.getName();
                        if("getParameter".equals(m)){
                            //对get方法进行处理
                            String value=request1.getParameter(args[0].toString());
                            String me=request1.getMethod();
                            if("GET".equals(me)){
                                value=new String(value.getBytes("iso8859-1"),"utf-8");
                            }
                            return value;
                            
                        }else{
                            returnValue=method.invoke(request1, args);
                        }
                        return returnValue;
                    }
                });
        System.out.println("过滤器执行");
        chain.doFilter(p, response);
    }

 

代理模式的相关使用

标签:

原文地址:http://www.cnblogs.com/may12138/p/5538888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!