JSP乱码问题,请高手帮忙. 插入数据库后乱码,MySQl数据库,编码是utf-8,我也JSP页面也是utf-8.是乱码.我改成gb2312后,还是乱码,真是郁闷! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置过滤器.......1、到你Tomcat 5.0\webapps\servlets-examples\WEB-INF\classes\filters下找到SetCharacterEncodingFilter.java这个文件。2、把SetCharacterEncodingFilter.java放到你的工程代码中。3、设置web.xml <filter> <filter-name>Set Character Encoding </filter-name> <filter-class>你的包.SetCharacterEncodingFilter </filter-class> <init-param> <param-name>encoding </param-name> <param-value>UTF-8 </param-value> </init-param> <init-param> <param-name>ignore </param-name> <param-value>true </param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding </filter-name> <servlet-name>action </servlet-name> </filter-mapping> 插入db后乱码,那发生在页面编码上,request获得页面编码的时候,设置过滤器可以解决 但是需要指出的是 这种filter解决的是表单post时候的编码转换对于GET方法提交,定位到你Tomcat安装目录下的conf目录,打开conf目录下的server.xml文件,找到对JSP网页端口(默认为 8080)进行服务的Connector组件的设置部分,给该Connector组件添加一个属性:URIEncoding="GBK".修改后的 Connector组件如下: <Connector port="9080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF"/>这样修改后,重启Tomcat就可以正确处理GET方法提交的表单数据了 我这里已经有了一个filter了public class EncodingFilter implements Filter { private String targetEncodin = "UTF-8"; protected FilterConfig filterConfig; /** * */ public EncodingFilter() { super(); // TODO Auto-generated constructor stub } /* (non-Javadoc) * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) */ public void init(FilterConfig config) throws ServletException { // TODO Auto-generated method stub this.filterConfig = config; if (config.getInitParameter("encoding") != null && !config.getInitParameter("encoding").equals("")) { this.targetEncodin = config.getInitParameter("encoding"); } } /* (non-Javadoc) * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) */ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub servletRequest.setCharacterEncoding(this.targetEncodin); servletResponse.setContentType("text/html; charset=" + this.targetEncodin); HttpServletResponse httpServletResponse = (HttpServletResponse)servletResponse; httpServletResponse.setHeader("Pragma", "No-cache"); httpServletResponse.setHeader("Cache-Control", "no-cache"); httpServletResponse.setHeader("Expires", "0"); chain.doFilter(servletRequest, servletResponse); } /* (non-Javadoc) * @see javax.servlet.Filter#destroy() */ public void destroy() { // TODO Auto-generated method stub this.filterConfig = null; }}web.xml<filter> <filter-name>charEncoding</filter-name> <filter-class>com.tiandinet.StrutsArticle.FunctionBeans.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>charEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 在JSP文件的最上方添加如下语句: <%@page contentType="text/html; charset=utf-8"%>并在</head>之前添加如下语句: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 数据库怎么反生成hibernate注释 IE8兼容性试图问题 struts2 配置文件问题 stuts 验证用户名登陆代码! 求助:web service 与 servlet oracle简单问题? function(data, request, widget)求救 求救!Weblogic的 Transaction timed out问题!急。。。。。。 请问:hibernate如何防止映射文件中一个映射错误导致全盘错误? 一个list解析问题 耽误您点时间,帮我看看吧(servlet)急用 请教hibernate保存图片问题
2、把SetCharacterEncodingFilter.java放到你的工程代码中。
3、设置web.xml
<filter>
<filter-name>Set Character Encoding </filter-name>
<filter-class>你的包.SetCharacterEncodingFilter </filter-class>
<init-param>
<param-name>encoding </param-name>
<param-value>UTF-8 </param-value>
</init-param>
<init-param>
<param-name>ignore </param-name>
<param-value>true </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding </filter-name>
<servlet-name>action </servlet-name>
</filter-mapping>
对于GET方法提交,定位到你Tomcat安装目录下的conf目录,打开conf目录下的server.xml文件,找到对JSP网页端口(默认为 8080)进行服务的Connector组件的设置部分,给该Connector组件添加一个属性:URIEncoding="GBK".修改后的 Connector组件如下:
<Connector port="9080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF"/>
这样修改后,重启Tomcat就可以正确处理GET方法提交的表单数据了
{
private String targetEncodin = "UTF-8";
protected FilterConfig filterConfig; /**
*
*/
public EncodingFilter()
{
super();
// TODO Auto-generated constructor stub
} /* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig config) throws ServletException
{
// TODO Auto-generated method stub
this.filterConfig = config;
if (config.getInitParameter("encoding") != null && !config.getInitParameter("encoding").equals(""))
{
this.targetEncodin = config.getInitParameter("encoding");
}
} /* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain chain) throws IOException, ServletException
{
// TODO Auto-generated method stub
servletRequest.setCharacterEncoding(this.targetEncodin);
servletResponse.setContentType("text/html; charset=" + this.targetEncodin);
HttpServletResponse httpServletResponse = (HttpServletResponse)servletResponse;
httpServletResponse.setHeader("Pragma", "No-cache");
httpServletResponse.setHeader("Cache-Control", "no-cache");
httpServletResponse.setHeader("Expires", "0");
chain.doFilter(servletRequest, servletResponse);
} /* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy()
{
// TODO Auto-generated method stub
this.filterConfig = null;
}}web.xml
<filter>
<filter-name>charEncoding</filter-name>
<filter-class>com.tiandinet.StrutsArticle.FunctionBeans.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>charEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<%@page contentType="text/html; charset=utf-8"%>
并在</head>之前添加如下语句:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">