客户端发送请求:http://localhost:8080/test/xxx.action?name="palading"&age=24
HttpServlet类中调用:
Map<String, String[]>map=request.getParameterMap();
for(String key:map.keySet()){
if(key.equals("name")){
map.put("name",new String[]{"小明"});
}
}
HttpServlet引发异常
java.lang.IllegalStateException:No modifications are allowed to a locked ParameterMap
默认情况下只能查看请求参数信息,不能修改参数信息。
所以继承要HttpServletRequestWrapper重写getParameter方法:
public class MyHttpServletWrapp extends HttpServletRequestWrapper {
HttpServletRequest request;
public MyHttpServletWrapp(HttpServletRequest request) {
super(request);
this.request = request;
}
@Override
public String getParameter(String name) {
if ("name".equals(name))
return "Test";
return super.getParameter(name);
}
}
新建过滤器类 implements Filter
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException{
MyHttpServletWrapp myHttpServletWrapp=new MyHttpServletWrapp((HttpServletRequest)request);
重新包装发送请求
chain.doFilter(myHttpServletWrapp,response);
}
在HttpServlet中获取请求参数信息 发现请求参数信息已经被改变
protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
String name=request.getParameter("name");
System.out.println(name);
}
JavaWeb修改请求参数信息
最新推荐文章于 2023-12-27 17:56:49 发布
1583

被折叠的 条评论
为什么被折叠?



