知识大全 jsp如何解决Form表单乱码问题
Posted 中文
篇首语:阅读永远是获取知识面最为廉价的方法,没有之一!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 jsp如何解决Form表单乱码问题相关的知识,希望对你有一定的参考价值。
jsp如何解决Form表单乱码问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
网站程序中的Form表单 是重要的组成内容之一 很多时候 Form表单会出现乱码的现象 会给网站造成一定的困扰 如何解决乱码的问题?
JSP和Servlet的六种中文乱码处理方法
一 表单提交时出现乱码
在进行表单提交的时候 经常提交一些中文 自然就避免不了出现中文乱码的情况 对于表单来说有两种提交方式 get和post提交方式 所以请求的时候便有get请求和post请求 每种方式都有着不同的解决方法 之所以出现乱码 原因就在于get请求时 其传递给服务器的数据是附加在URL地址之后的;而post的请求时 其传递给服务器的数据是作为请求体的一部分传递给服务器 这也就导致了对它们所产生的乱码的处理方式是不同的
客户端的get请求
对于不同的请求方式 解决乱码的问题也是不一样的 对于客户端的get请求来说 服务器端处理要想不出现乱码 解决这个问题稍微复杂一些 需要用到String类型的构造函数 其中的一个构造函数就是用指定的编码方式去解码 一般都用“UTF ”的方式 只要在服务器端将请求得到的参数重新构造成一个字符串就行了
经过构造之后 客户端输入中文 且表单时get请求的情况下 str就变成了中文了
客户端的post请求
对于客户端的post请求来说 处理乱码的问题就比较简单了 因为请求的数据时作为请求体的一部分传递给服务器的 所以只要修改请求内的编码就行了 只要在服务器端的最开始处将请求的数据设置为“UTF ”就行了 输入如下语句 request setCharacterEncoding(“UTF ”);这样用户在服务器端获取到的中文数据就不再是乱码了
二 超链接时出现乱码(低版本浏览器不行IE )
在Web开发中 挺多的时候都是通过超链接去传递中文参数的 这也会导致在显示的时候也会出现乱码 对于超链接来说 它实际上是向服务器端发送了一个请求 而它发出的请求是属于get请求 所以对于超链接的乱码来说 它处理乱码的方式和表单的get请求出现乱码的方式是一样的
三 重定向时出现乱码(低版本浏览器不行IE )
有时写上response的sendRedirect方法进行重定向时也会出现乱码 重定向时实际上也是向服务器发送了一个请求 所以解决乱码的方法和和上面是一样的
四 浏览器版本低导致的乱码
上网的时候 有时提交的一些信息在地址栏显示的是“% C%C %CC%C ”的字样 其实这都是防止出现乱码进行的解决方案 如果你的浏览器是IE 或以下版本 则我们的第二种情况和第三种情况会出现乱码(尤其是当中文是奇数的时候) 这就不好使了所以我们必须采用另一种比较实际的作法
在java net包中提供了URLEncoder类和URLDcoder类 这两个类又分别提供了encode和decode两个静态方法 分别用于进行编码和解码 我们将要传递的中文参数进行编码之后 在传递给服务器 服务器解码之后 就可以显示中文了
进行编码 URLEncoder encode(stuname ”UTF ”)
传递给服务器 <a href=”/ jsp?stuname<%=stuname%>”>传递</a>
进行解码 URLDecoder decode(stuname ”UTF ”)
五 返回浏览器显示的乱码
在Servlet编程中 经常需要通过response对象将一些信息返回给浏览器 给我们的客户端 而我们在服务器端显示的中文 但是响应给客户端浏览器却是乱码 这主要是由于response对象的getWriter()方法返回的PrintWriter对象默认使用“ISO ”字符集编码进行Unicode字符串到字节数组的转换 由于ISO 字符集中根本就没有包含中文字符 所以Java在进行转换的时候会将无效的字符编码输出给客户端 于是便出现了乱码 为此ServletResponse接口中便定义了setCharacterEncoding setContentType等方法来指定getWriter方法返回的PrintWriter对象所使用的字符集编码 所以我们在写Servlet程序中 在调用getWriter方法之前设置这些方法的值
只要编写Servlet文件中含有响应给客户端的信息 那么就要写上这两句话 最好写上第二句话 因为它的优先级高 它的设置结果将覆蓋setContentType等方法设置的字符编码集
六 修改Tomcat的编码
在get请求所导致乱码问题中 还有一种解决的方案 我们常用Tomcat作为运行Servlet和JSP的容器 而Tomcat内部默认的编码是ISO 所以对于get请求方式 其传递的数据(URI)会附加在访问的资源后面 其编码是Tomcat默认的 如果修改该URI的编码 那么对于所有的get请求方式便不会出现乱码了包括上边说的重定向和超链接 在Tomcat的配置文件server xml中找到修改Tomcat的端口的地方 在其内部加入URIEncoding属性 设置为和你的项目中所设的编码一样的值 这里全部都是UTF
cha138/Article/program/Java/JSP/201311/20540相关参考
如何解决JSP页面显示乱码问题[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
如何解决JSP页面显示乱码问题[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
JSP中使用request乱码问题的解决 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
在jsp和servlet的开发中今天自己做的一个小例子中出现了中文乱码问题用了许多方法发现还是解决不了最后我用了过滤器才算终结 此方法总结如下在jsp页面中使用<%@pagepageEnc
如何解决JSP参数传递乱码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 计算机生于美国英语是他
常见JSP中文乱码例子及其解决方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JSP开发应用
JSP验证码大全之验证码使用与乱码解决 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文中介绍
知识大全 Struts里提交中文表单到ActionForm的乱码问题
Struts里提交中文表单到ActionForm的乱码问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
JSP页面传值中文乱码的简单解决方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 源代码ajs
JSP中文编码问题解决方法详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最基本的乱码问