我正在使用 javax.servlet.http.HttpServletRequest 来实现 Web 应用程序。
使用getParameter方法获取请求的参数没有问题。但是我不知道如何在我的请求中设置参数。
最佳答案
你不能,不使用标准 API。 HttpServletRequest
表示服务器收到的请求,因此添加新参数不是有效的选项(就 API 而言)。
您原则上可以实现 HttpServletRequestWrapper
的子类,它包装原始请求,并拦截 getParameter()
方法,并在转发时传递包装的请求。
如果你走这条路,你应该使用 Filter
将你的 HttpServletRequest
替换为 HttpServletRequestWrapper
:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
if (servletRequest instanceof HttpServletRequest) {
HttpServletRequest request = (HttpServletRequest) servletRequest;
// Check wether the current request needs to be able to support the body to be read multiple times
if (MULTI_READ_HTTP_METHODS.contains(request.getMethod())) {
// Override current HttpServletRequest with custom implementation
filterChain.doFilter(new HttpServletRequestWrapper(request), servletResponse);
return;
}
}
filterChain.doFilter(servletRequest, servletResponse);
}
关于java - 如何在 HttpServletRequest 中设置参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/892537/