A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 CrazyProgram 于 2013-5-4 18:36 编辑
  1. class MyRequest{
  2.         private HttpServletRequest request;
  3.         public MyRequest(HttpServletRequest request){
  4.                 this.request = request;
  5.         }
  6.         public HttpServletRequest getProxy(){
  7.                 return (HttpServletRequest) Proxy.newProxyInstance(
  8.                                 MyRequest.class.getClassLoader(),
  9.                                 request.getClass().getInterfaces(),
  10.                                 new InvocationHandler() {
  11.                                        
  12.                                         @Override
  13.                                         public Object invoke(
  14.                                                         Object proxy,
  15.                                                         Method method,
  16.                                                         Object[] args)throws Throwable {
  17.                                                 if("getParameter".equals(method.getName())){
  18.                                                         String m = request.getMethod();
  19.                                                         if("post".equalsIgnoreCase(m)){
  20.                                                                 request.setCharacterEncoding("UTF-8");
  21.                                                                 String value = request.getParameter((String)args[0]);//正码
  22.                                                                 return value;//为什么返回的是value而不是return method.invoke(request, args);
  23.                                                         }else if("get".equalsIgnoreCase(m)){
  24.                                                                 String value = request.getParameter((String)args[0]);//乱码
  25.                                                                 byte[] buf = value.getBytes("ISO8859-1");
  26.                                                                 value = new String(buf,"UTF-8");//正码
  27.                                                                 return value;//为什么返回的是value而不是return method.invoke(request, args);
  28.                                                         }
  29.                                                 }else{
  30.                                                         return method.invoke(request, args);
  31.                                                 }
  32.                                                 return null;
  33.                                         }
  34.                                 });
  35.         }
  36. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

2 个回复

倒序浏览
尹桥印 发表于 2013-4-30 16:30
request.getparameter(string str)的返回值是Sting类型的,你不是写了一个else嘛,如果在if里为false,则会 ...

可是最上面限定的返回对象是HttpServletRequest,那我返回了String类型的,这样好么?感觉一点都不大噶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马