知识大全 JSP中使用request乱码问题的解决
Posted 知
篇首语:恢弘志士之气,不宜妄自菲薄。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JSP中使用request乱码问题的解决相关的知识,希望对你有一定的参考价值。
JSP中使用request乱码问题的解决 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
JSP显示中文有乱码怎么办 用request得到的用户输入的中文怎么是乱码 把汉字写到数据库怎么是乱码 等等一些关于汉字乱码的问题 其实这个问题很简单 管它汉字不汉字 还是日文 还是其他的什么双字节的语言 我们一律把它当作UTF 看待 (一)request中的双字节文字 我们来实现在整个应用程序中使用UTF 编码工作 之所以选择UTF 不仅仅之于上述原因 我们知道java的就是基于在UTF 之上的 所以我们选择UTF 应该没错首先把我们的 java jsp文件都用UTF 编码来保存 如果以前的没有用UTF 保存也无所谓 但是建议以后写的都用UTF 来保存 并在 jsp里面写:
以下是引用片段 <%@page contentType= text/; charset=UTF %>而不是 %@page contentType= text/; charset=UTF % 然后在web xml添加下面一段 以下是引用片段 <web app> <filter> <filter name>Set Character Encoding</filter name> <filter class> redv projects eduadmin util filters SetCharacterEncodingFilter</filter class> <init param> <param name>encoding</param name> <param value>UTF </param value> </init param> </filter> <filter mapping> <filter name>Set Character Encoding</filter name> <url pattern>/*</url pattern> </filter mapping> </web app> 其中 redv projects eduadmin util filters SetCharacterEncodingFilter的代码如下 package redv projects eduadmin util filters; 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; import javax servlet UnavailableException; import javax servlet import javax servlet public class SetCharacterEncodingFilter implements Filter protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; public void destroy() this encoding = null; this filterConfig = null; public void doFilter(ServletRequest request ServletResponse response FilterChain chain) throws IOException ServletException // Conditionally select and set the character encoding to be used if (ignore || (request getCharacterEncoding() == null)) String encoding = selectEncoding(request); if (encoding != null) request setCharacterEncoding(encoding); //Overrides the name of the character encoding used in the body of this request This method must be called prior to reading request parameters or reading input using getReader() // Pass control on to the next filter chain doFilter(request response); public void init(FilterConfig filterConfig) throws ServletException this filterConfig = filterConfig; this encoding = filterConfig getInitParameter( encoding ); String value = filterConfig getInitParameter( ignore ); if (value == null) this ignore = true; else if (value equalsIgnoreCase( true )) this ignore = true; else if (value equalsIgnoreCase( yes )) this ignore = true; else this ignore = false; protected String selectEncoding(ServletRequest request) return (this encoding);这样 我们的request请求就是以UTT 编码的 在JSP程序中就可以使用 request getParameter( myKey )来直接得到UTF 编码的字符串了 而不需要像这样 new String(request getParameter( myKey ) getBytes( ISO ) GBK )来解决那些乱码了
(二)数据库处理的双字节文字 另外一个 就是写入数据库的问题 我们知道我们在使用mysql的时候可以改用这样的url来处理汉字编码问题 jdbc:mysql://localhost: /upas?useUnicode=true& characterEncoding=gb 那么对于那些我们无法像mysql这样解决的怎么办呢?难道我们每次都这样写吗 ( lian )
import java sql *; Class forName( gjt mm mysql Driver ); Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; try con = DriverManager getConnection( jdbc:mysql://localhost: /test root ); pstmt = con prepareStatement( SELECT f f FROM tbl WHERE f = ? AND f = ? ); pstmt setString( new String(f getBytes( GBK ) ISO ); pstmt setString( new String(f getBytes( GBK ) ISO ); rs = pstmt executeQuery(); String f f ; while(rs next()) f = new String(rs getString( ) getBytes( ISO ) GBK ); f = new String(rs getString( ) getBytes( ISO ) GBK ); finally //close resouces其实我们完全可以这样写
import java sql *; import redv sql encoding *; Class forName( gjt mm mysql Driver ); Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; try con = DriverManager getConnection( jdbc:mysql://localhost: /test root ); //接管数据库连接实例 boolean coding = true; EncodingConnection codingConnection = new EncodingConnection(con coding ISO GBK ); //获得接管后的数据库连接实例 以后直接使用con已经是经过EncodingConnection重新包装过的实例 con = codingConnection getConnection(); pstmt = con prepareStatement( SELECT f f FROM tbl WHERE f = ? AND f = ? ); pstmt setString( f ); pstmt setString( f ); rs = pstmt executeQuery(); String f f ; while(rs next()) f = rs getString( ); f = rs getString( ); finally //close resouces cha138/Article/program/Java/JSP/201311/19877相关参考
知识大全 JSP+ MySQL中文乱码问题post提交乱码解决方案
JSP+MySQL中文乱码问题post提交乱码解决方案 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
如何解决JSP页面显示乱码问题[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
如何解决JSP页面显示乱码问题[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
在jsp和servlet的开发中今天自己做的一个小例子中出现了中文乱码问题用了许多方法发现还是解决不了最后我用了过滤器才算终结 此方法总结如下在jsp页面中使用<%@pagepageEnc
JSP验证码大全之验证码使用与乱码解决 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文中介绍
页面中这段不起眼的代码<metaequiv="ContentType"content="text/;charset=GBK">错把如果charset=GBK设置为charset=UTF
如何解决JSP参数传递乱码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 计算机生于美国英语是他
常见JSP中文乱码例子及其解决方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JSP开发应用
JSP虚拟主机使用中的乱码问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
JSP页面传值中文乱码的简单解决方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 源代码ajs