文档章节

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

泉天下
 泉天下
发布于 2017/07/21 16:13
字数 233
阅读 2
收藏 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");
        }
    }

© 著作权归作者所有

共有 人打赏支持
泉天下
粉丝 1
博文 59
码字总数 34938
作品 0
广州
Java基础之反射(非常重要)

反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道...

Java-老刘
05/15
0
0
JAVA使用字节流将本地图片传到前端

JAVA使用字节流将本地图片传到前端 01.基本介绍 在我们日常的开发中,会遇到对验证码的使用问题(验证码的作用这里不多多说,避免程序被恶意攻击等),如何是的前端和后端保持一致是一个问题...

meiqi0538
04/09
0
0
Android Java虚拟机拦截技术分析

最近反编译金山毒霸,分析其广告拦截功能是如何实现的。根据金山毒霸的介绍,采用了java虚拟机拦截技术,带着好奇去研究了一下。在查看代码过程中,会看到许多被hook的Java类,例如ActivityT...

JayPark不作死
2014/02/21
0
1
Spring Boot 配置加载顺序详解

使用 Spring Boot 会涉及到各种各样的配置,如开发、测试、线上就至少 3 套配置信息了。Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发、测试、线上环境使用不同的配置。 在 Spri...

Java技术栈
08/27
0
0
JVM Management API

JVM本 身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据、JVM当前所有线程及其栈相关信息等等。各种 JDK自带的剖析工具,包括jps、jstack、jin...

今幕明
2014/09/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一个可能的NEO链上安全随机数解决方案

0x00 困境 链上安全随机数生成应该算是一个比较蛋疼的问题,哪怕你的系统再牛逼,合约程序困在小小的虚拟机里,哪怕天大的本事也施展不开。 更悲催的是,交易执行的时候,是在每一个节点都执...

暖冰
今天
1
0
【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部