`
lujiawu12
  • 浏览: 124407 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

代码回顾-request

    博客分类:
  • java
阅读更多

webx3中(wdetail)处理淘客的一个pipeline

@Autowired
    private HttpServletRequest request;
 
    @Override
    public void invoke(final PipelineContext pipelineContext) throws Exception {
       final String ttid = request.getParameter(RUNDATA_SPID);
       final String pid = ttidMappingPid.get(ttid);
       if (StringUtils.isNotBlank(pid)) {
           request.getParameterMap().put(TK_PID_PREFIX, pid);
           request.getParameterMap().put(TK_APP_ID, "12003897");
        }
pipelineContext.invokeNext();
    }
 

请仔细的看一下,该代码有什么问题没?

 

有,request.getParameterMap().put(TK_PID_PREFIX, pid);会抛异常的。。。

 java.lang.UnsupportedOperationException

        at java.util.AbstractMap.put(AbstractMap.java:186)

        at

 

request.getParameterMap() 这里返回的是一个 com.alibaba.citrus.service.requestcontext.parser.impl.ParserRequestContextImpl$ParameterMap

 

private class ParameterMap extends AbstractMap<String, String[]> {

 

     */

    public V put(K key, V value) {

    throw new UnsupportedOperationException();

}

 

修改方法:

rundata.getParameters().add(key, value)

rundata.getParameters()返回的是com.alibaba.citrus.service.requestcontext.parser.impl.ParameterParserImpl   有对应的params操作。。

 

回头看了看httpserlet.getParameterMap

java.util.Map getParameterMap()

Returns a java.util.Map of the parameters of this request. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.

Returns:

an immutable java.util.Map containing parameter names as keys and parameter values as map values. The keys in the parameter map are of type String. The values in the parameter map are of type String array.

所以很明显,我们的webx在这一点上还是很尊重servlet规范的

 

 

分享到:
评论

相关推荐

    基于nodejs 的多页面爬虫实例代码

    前端时间再回顾了一下node.js,于是顺势做了一个爬虫来加深自己对node的理解。 主要用的到是request,cheerio,async三个模块 request 用于请求地址和快速下载图片流。 https://github.com/request/request ...

    零基础Python爬虫48小时速成课.txt

    数据太大 网盘下载 01 1.01爬虫说明.mp4 02 1.02爬虫技术库及反爬说明.mp4 03 1.03百度搜索及文件下载.mp4 04 1.04百度翻译之urllib的POST请求.mp4 05 1.05复杂的GET请求多页数据.mp4 ...课件+代码 .zip

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    《Java Web编程宝典(十年典藏版)》附有配套DVD光盘,光盘中提供了书中全部实例和项目的源代码。这些源代码全部经过精心调试,能够在Windows XP、WindowsServer2003及Windows7操作系统下编译和运行。 《Java Web...

    leetcode100-Leetcode:Leetcode求解

    request。 如果有人有更好的意见,请至少通过[评论]反馈。 合并。 回顾 拉取新更新的代码。 如果其他人留下了反馈,请查看反馈。 使用其他人的解决方案 + 反馈重新检查您自己的代码。 如果您不熟悉该概念,请通过...

    JavaWeb每日总结思维导图

    本资源免费下载供大家阅读使用,全程知识点,使用思维导图的方式对知识进行梳理,包含各技术名词的概念及代码,内容清晰有序,适合初学者学习使用——每日一个 ,亦可以作为开发老鸟回顾知识的笔记。选择下载该内容...

    黑马程序员安卓Android52期培训课

    2014/12/21 星期日 java web之request/respone 2014/12/22 星期一 2014/12/23 星期二 Cookie/session 2014/12/24 星期三 jsp/EL表达式/EL函数 2014/12/25 星期四 2014/12/26 星期五 自定义标签/JSTL标签库/web国际...

    一文让你彻底掌握python爬虫的编写(代码可以直接使用!)

    最近闲来无事研究了下python的爬虫机制,为了以后回顾,所以写篇博文详细讲下过程。(以爬取某网站图片为例) 示范网站:https://www.dpm.org.cn/lights/royal.html 首先我们需要分析我们要爬取的网页, 我们需要...

    TheRayCode:TheRayCode Java PHP C#CPP UML

    TheRayCode Java 在这里,您可以在主页上找到我使用的所有代码。 您也可以给我发送电子邮件: 在这篇文章中,我计划回顾“四人帮”所描述的“责任链”设计模式。 对于此示例,我将使用编程语言java。 创建类...

    Python入门网络爬虫之精华版

    相关参考:网易新闻排行榜抓取回顾 参考项目:网络爬虫之最基本的爬虫:爬取网易新闻排行榜 2. 对于登陆情况的处理 2.1 使用表单登陆 这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie...

    Javascript中的async awai的用法

    async / await是ES7的重要特性之一,也是目前社区里公认的...下面的例子中数据请求用Node.js中的request模块,数据接口采用Github v3 api文档提供的repo代码仓库详情API作为例子演示。 Promise对异步的处理 虽然Node

    Java开发技术大全 电子版

    14.9.1流式布局(FlowLayout)回顾527 14.9.2边框布局(BorderLayout)使用示例528 14.9.3网格布局(GridLayout)使用示例529 14.9.4卡片布局(CardLayout)使用示例530 14.9.5增强网格布局(GridBagLayout)...

    JavaScript详解(第2版)

    1.11 JavaScript代码放在哪儿 17 1.12 验证标签 20 1.12.1 W3C验证工具 21 1.12.2 Validome验证工具 21 1.13 应知应会 22 练习 23 第2章 脚本的安装 24 2.1 HTML文档与JavaScript 24 2.2 语法细节 ...

    dbTest:课程作业的数据库方面的练习

    数据库测试课程作业的数据库方面的练习完毕创建的 ... 头放删除选项 ( , ) 重组以获取课程作业所需的数据代码转储// 构建完整的 URL 并显示 $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 回声

    Oracle数据库管理员技术指南

    1.8 回顾 第2章 管理数据存储、对象和容量 2.1 配置数据存储 2.1.1 管理可用空间碎片 2.1.2 聚集可用空间的技术 2.1.3 管理区的碎片 2.1.4 查找接近 MAXEXTENTS 值的 对象 2.1.5 避免数据字典的碎片 2.1.6 ...

    Grails权威指南

     9.2.1 在远程方法调用前后执行代码  9.2.2 事件处理  9.2.3 完善页面的更新  9.3 创建远程调用链接  9.4 实现ajax效果(effects)  9.5 如何处理javascript事件  9.6 以异步方式提交表单...

    ZendFramework中文文档

    3.4.2. 设计回顾 3.4.3. 配置选项 3.4.4. Resolvers 3.4.4.1. 文件 Resolver 3.4.5. 基本用法 4. Zend_Cache 4.1. 简介 4.2. 缓存原理 4.2.1. Zend_Cache 工厂方法 4.2.2. 标记纪录 4.2.3. 缓存清理 4.3. ...

Global site tag (gtag.js) - Google Analytics