如何将参数添加到我的Java Servlet的现有HttpServletRequest中?
我想在我的HttpServletRequest
的参数映射中添加一个新参数。
以下代码
request().getParameterMap().put("j_username", user); request().getParameterMap().put("j_password", pwd);
创建此错误
no modifications are allowed to a locked parameter map
这样做的正确方法是什么?
请求的参数是浏览器作为参数发送的值。 没有理由改变它们。 如果要将某个值与请求关联,请使用属性而不是参数。 这具有额外的优点,即属性可以是任何对象而不仅仅是字符串:
request.setAttribute("user", new User(userName, password));
如果您将请求转发到另一个资源,您可以添加参数(虽然我不会说这是一个好习惯):
request.getRequestDispatcher("/some/path?j_username=" + user + "&j_password=" + pwd).forward(request, response);
但是,参数应该正确编码。
我遇到了类似的问题,并通过制作参数图的副本来解决它。
Map params = new HashMap(req.getParameterMap());
- 如何通过CommPortIdentifier查找COM端口
- 忽略IntelliJ中的Java .class文件导航到文件对话框?
- 如何在jCalendar中设置“关闭”所有toogle日按钮?
- Java:通过它的UserObject字段递归搜索TreeModel?
- Spring JDBC + Postgres SQL + Java 8 – 从/到LocalDate的转换
- Angular 4 http CORS没有’Access-Control-Allow-Origin’和一个java servlet
- 我可以在Discriminated Entity Hierarchy的子类上使用CompositeId吗?
- ant junit任务不报告细节
- cURL和HttpURLConnection – 发布JSON数据