万能java后台参数获取技术 name=xiaohei&age=18&name=yj

  通用方法 

  /**
     * 取得参数串,形如name=xiaohei&age=18
     * @param request
     * @return
     */
    public String getParamValuesStr(HttpServletRequest request){
        StringBuilder sb = new StringBuilder();
        Enumeration<String> parameterNames = request.getParameterNames();
        while (parameterNames.hasMoreElements()) {
            String name = (String) parameterNames.nextElement();
            sb.append(name).append("=").append(request.getParameter(name));
            if(parameterNames.hasMoreElements()){
                sb.append("&");
            }
        }
        return sb.toString();
    }

 @RequestMapping(value="index.html", method = { RequestMethod.POST, RequestMethod.GET })
    public String index(HttpServletRequest request, HttpServletResponse response, ModelMap model){
       
        //微信返回的openid
        String oid = request.getParameter("oid");
        //用户所传的需要跳转的url
        String forward = request.getParameter("forward");
        //用户所携带的参数
        String params = getParamValuesStr(request);
        if(StringUtils.isNoneBlank(oid) && StringUtils.isNoneBlank(forward)){
            log.info("--------通用方法获取到的oid:"+oid);
            log.info("--------需要跳转的页面:"+forward);
            
            return "redirect:/"+forward+"?"+params;
        }
        
        String userAgent = request.getHeader("user-agent").toLowerCase();
        if (userAgent.indexOf("micromessenger") > -1) {
            // 重定向去获取oid的值
            String state =  "";
            if(StringUtils.isNotBlank(params)){
                state = user_name_openId + "#" + params;
            }else{
                state = user_name_openId;
            }
            try {
                state = URLEncoder.encode(state, "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            String weixinUrl = GET_OPENID_URLPATH + "&state=" + state + "#wechat_redirect";
            log.info("微信跳转连接--->"+weixinUrl);
            return "redirect:"+weixinUrl;
        }
        
        if(StringUtils.isNoneBlank(forward)){
            return "redirect:/"+forward+"?"+params;
        }else{
            model.addAttribute("msg", "亲请传入forward参数作为跳转页面的依据哦!");
            return WebSite.getWebAppTemplate("generalweChatcallback/error");
        }
    }

转载于:https://my.oschina.net/u/3621360/blog/1477188

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值