java - 如何向我的 Java Servlet 的现有 HttpServletRequest 添加参数?

标签 java web-applications servlets

我想在 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);

不过,参数应该正确编码。

关于java - 如何向我的 Java Servlet 的现有 HttpServletRequest 添加参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8551331/

相关文章:

Java(Android),线程安全的FIFO,无需锁定?

java - 如何从Web服务请求获取日历对象?

java - 三元运算符的使用

java - 通用 Java Web 应用程序

jakarta-ee - 本地主机的映射

网站和网络应用程序?

java - 我可以在一个 HttpServletResponse 中附加多个附件吗

java - 如何将 Derby 数据库与 Servlet 连接?

java - 是否有有效的工具将.Net C# webservice 转换为java webservice?

java - Tomcat的授权代码/类在哪里?