首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何向Java Servlet的现有HttpServletRequest添加参数?

如何向Java Servlet的现有HttpServletRequest添加参数?
EN

Stack Overflow用户
提问于 2011-12-18 19:13:46
回答 2查看 64.7K关注 0票数 25

我想在HttpServletRequest的参数映射中添加一个新参数。

下面的代码

代码语言:javascript
复制
 request().getParameterMap().put("j_username", user);
 request().getParameterMap().put("j_password", pwd);

创建此错误

代码语言:javascript
复制
no modifications are allowed to a locked parameter map

执行此操作的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-18 19:20:46

请求的参数是浏览器作为参数发送的值。没有理由改变它们。如果您希望将某些值关联到请求,请使用属性而不是参数。这有一个额外的优点,即属性可以是任何对象,而不仅仅是字符串:

代码语言:javascript
复制
request.setAttribute("user", new User(userName, password));

如果您将请求转发到另一个资源,则可以添加参数(尽管我不认为这是一个好的做法):

代码语言:javascript
复制
request.getRequestDispatcher("/some/path?j_username=" + user + "&j_password=" + pwd).forward(request, response);

但是,参数应该被正确编码。

票数 20
EN

Stack Overflow用户

发布于 2013-07-24 04:58:20

我遇到了类似的问题,并通过复制参数映射解决了这个问题。

代码语言:javascript
复制
Map<String, String[]> params = new HashMap<String, String[]>(req.getParameterMap());
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8551331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档