万能java后台参数获取技术 name=xiaohei&age=18&name=yj
万能java后台参数获取技术 name=xiaohei&age=18&name=yj
泉天下 发表于10个月前
万能java后台参数获取技术 name=xiaohei&age=18&name=yj
  • 发表于 10个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

  通用方法 

  /**
     * 取得参数串,形如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");
        }
    }

 

欢迎关注微信公众号

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 28
码字总数 22287
×
泉天下
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: