struts1乱码问题
jsp头部:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
goodsName是需要在表单中录入,是中文的,在Action内取得后存到request内,后面作为URL参数传递
Action取得的方法是:
if(request.getParameter("goodsName") != null){
goodsName = new String(request.getParameter("goodsName").getBytes("ISO-8859-1"),"gb2312");
System.out.println(goodsName); //此处打印出来的是乱码
}
url:
goodsMaint.do?command=query&goodsName=${requestScope.goodsName}
处理编码的过滤器我也用了,代码如下:
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodeFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
在web.xml中的配置如下:
<!-- 配置处理乱码的filter -->
<filter>
<filter-name>encodeFilter</filter-name>
<filter-class>com.lchq.filter.EncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在tomcat中也做了如下配置:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="gb2312"/>
结果还是出现了乱码:'???'
不知道我说清楚没,请各位高手大哥帮忙看看问题所在!!!