修改HttpServletRequest里面的请求值

吴统威 on 操作系统 编程语言 JAVAEE | 2014-06-27 16:10:05.0

通常,在使用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);
    }

}