如何在HttpServletRequest中设置参数?
我正在使用 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);
}
以上是 如何在HttpServletRequest中设置参数? 的全部内容, 来源链接: utcz.com/qa/417505.html