通常,在使用spring,struts2或者其他框架的时候,精彩会想去自己构造一个请求对象,改变请求里头的值。这时候就应该需要仔细的查看javaee servlet方面的知识。这里讲一个我经常要做的一件事:修改request里ParameterMap的值,如果直接修改
public class MyServlet{ public MyServlet(HttpServletRequest request){ request.getParameterMap().put("token","akfjlsjdflsdkjlfkjsldjkl", 0, 0); } }
则会出现
java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap
解决办法如下:
public class MyServlet{ public MyServlet(HttpServletRequest request){ Map<String,String[]> map = new HashMap(request.getParameterMap(), 0, 0); map.put("token","akfjlsjdflsdkjlfkjsldjkl", 0, 0); } }