struts1.x 乱码问题
页面用的是UTF-8编码方式,用表单提交也是乱码,提交方式是POST,虽然用StringnewString这种方式能解决,但是文本这种东西在很多地方都要用,所以比较麻烦,...
页面用的是UTF-8编码方式,用表单提交也是乱码,提交方式是POST,
虽然用String new String 这种方式能解决,但是文本这种东西在很多地方都要用,所以比较麻烦,加上过滤器也没用,tomcat中的那个配置文件没修改过(以前修改过没出现乱码问题),好像有些人不建议修改那东西
请高手帮我解决下!谢谢了
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
//过滤器代码已经去掉了
过滤器代码
http://blog.sina.com.cn/s/blog_4bc3a2be0100cit9.html###
原先配过,100%能执行 展开
虽然用String new String 这种方式能解决,但是文本这种东西在很多地方都要用,所以比较麻烦,加上过滤器也没用,tomcat中的那个配置文件没修改过(以前修改过没出现乱码问题),好像有些人不建议修改那东西
请高手帮我解决下!谢谢了
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
//过滤器代码已经去掉了
过滤器代码
http://blog.sina.com.cn/s/blog_4bc3a2be0100cit9.html###
原先配过,100%能执行 展开
2个回答
展开全部
看了一下楼主链接中的filter代码,应该没问题的。
如果不加filter,页面采用utf-8,的确会在java代码中出现中文乱码的情况。
然后我就写了一个filter,大致跟链接中的内容一致,然后就解决了乱码问题。
我贴一下我的代码吧
web.xml代码
<filter>
<filter-name>charactarFileter</filter-name>
<filter-class>com.yourcompany.struts.CharactarEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>charactarFileter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
filter实现代码
package com.yourcompany.struts;
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 CharactarEncodingFilter implements Filter{
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
就这样,写好后重新发布项目,运行,解决问题。
如果不加filter,页面采用utf-8,的确会在java代码中出现中文乱码的情况。
然后我就写了一个filter,大致跟链接中的内容一致,然后就解决了乱码问题。
我贴一下我的代码吧
web.xml代码
<filter>
<filter-name>charactarFileter</filter-name>
<filter-class>com.yourcompany.struts.CharactarEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>charactarFileter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
filter实现代码
package com.yourcompany.struts;
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 CharactarEncodingFilter implements Filter{
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
就这样,写好后重新发布项目,运行,解决问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询