这几天遇到一些关于Action中获取jsp页面a标签的值会出下一些乱码问题。自己做了一些相关的总结。解决这个问题要找到根本原因,如果以下代码:
<a href="actionName.action?aName=value">.....</a>
在action类中获取value,代码如下:
HttpServletRequest request = ServletActionContext.getRequest();
String aName = request.getParameter("aName");
这样子得到的值如果是中文可能会出现中文乱码,原因是jsp经过服务器tomcat请求action,tomcat默认编码是(ISO-8859-1)。
解决方法一:在action类中添加下面代码:
aName = new String(aName .getBytes("ISO-8859-1"), "UTF-8");
方法二:在tomcat中的server文件中的找到并修改如下:
- <Connector port="8080" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100"
- connectionTimeout="20000" disableUploadTimeout="true" <span style="color: #ff0000;">URIEncoding="UTF-8"</span> />