Java servlet';s参数值不被解码
我对Javaservlet的getParameter()有一些问题,尽管我已经在server.xml中正确设置了Tomcat的编码,但它没有解码paramJava servlet';s参数值不被解码,java,url,servlets,encoding,getparameter,Java,Url,Servlets,Encoding,Getparameter,我对Javaservlet的getParameter()有一些问题,尽管我已经在server.xml中正确设置了Tomcat的编码,但它没有解码param <Connector port.. URIEncoding="UTF-8"/> 我得到的结果如下: 字符编码:UTF-8 查询字符串:名称=日本語一番ぜソFOX_&'">•«Ç€Ö™»我理解这与GET请求有关。设置应该这样做。它不起作用只能意味着您是从Eclipse这样的IDE内部运行Tomcat,并且IDE没有被配置为在您编
<Connector port.. URIEncoding="UTF-8"/>
我得到的结果如下:
字符编码:UTF-8
查询字符串:名称=日本語一番ぜソFOX_&'">•«Ç€Ö™»我理解这与GET请求有关。设置
应该这样做。它不起作用只能意味着您是从Eclipse这样的IDE内部运行Tomcat,并且IDE没有被配置为在您编辑Tomcat自己的配置时接管Tomcat自己的配置/conf/server.xml
中的配置
不清楚您使用的是哪个IDE,但是如果它是Eclipse,您需要在工作区的Servers项目中编辑server.xml
文件,而不是Tomcat自己的/conf/server.xml
文件
或者通过双击Servers视图中的Tomcat服务器条目并相应地更改ServerLocations部分,配置Eclipse以控制Tomcat的安装
回到您的调查/修复尝试:request.getCharacterEncoding()
没有被用来解码GET查询字符串(因为这超出了Servlet API的控制范围),它只被用来解码请求后的正文。
只会设置响应的字符编码,然后提交后续表单
另见
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("CharacterEncoding: "+ request.getCharacterEncoding());
System.out.println("Query String: "+ URLDecoder.decode(request.getQueryString(), "UTF-8");
System.out.println("Query param name: "+request.getParameter("name"));
...