巧妙解决JavaWeb开发中中文乱码问题
来源:互联网 发布:windows增强安全配置 编辑:程序博客网 时间:2024/05/29 15:46
此文章并非含技术量高,只是解决JavaWeb开发中中文乱码问题,在JavaWeb开发过程中很多程序员都遇到过中文乱码的情况,比如说直接访问Servlet出现乱码,如图:
很多程序员又会说这还不简单,直接在Servlet中加上“response.setContentType("text/html;charset=GBK");”不就解决了吗?但是有些是不起作用的,那这时有什么更好的方法解决呢?有,写一个过滤器来过滤编码格式,自己写一个类(Filter.java),如图:
把Filter类建在公共包下(common),同时Filter类必须实现Filter接口,如图:
记住,在选择继承Filter接口时别选错了,一定是javax.servlet中的Filter接口,如图:
建好Filter类是如图的:
然后在Filter类中的doFilter方法中写如下代码:
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=GBK");
chain.doFilter(request, response);
即如图:
然而这个类就完成了,Filter类中就不用在写什么代码了,但是到这一步并非解决乱码问题了,因为该类还要在web.xml中注册,注册代码如下:
<filter>
<filter-name>Filter</filter-name>
<filter-class>net.zrg.common.Filter</filter-class>(这是该类所在的包路径)
</filter>
<filter-mapping>
<filter-name>Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在写这些配置文件时要注意,不要配置错了,否则Filter一样不能解决乱码问题。
到这里就可以解决乱码问题了,但是有程序员又问到他用Action做是又出现往数据库插入数据时那些数据成乱码了,这也好解决,在刚刚才的web.xml注册中加多一个条件,代码如下:
<filter-mapping>
<filter-name>Filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
这样就能过滤到Action中的中文格式了,具体如图:
如果这些都还不起作用的后,那就去改tomcat的配置文件,让它自动装换,解决方法也很简单,就是设置tomcat的编码方式,在server.xml中设置URIEncoding
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="GBK" />
<!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK" />
当这些做完时初步达到效果如图:
这些中文就你正常显示了,在此文中我写的设置都是“GBK”,如果你的编码格式是“UTF-8”话你只要把“GBK”都改为“UTF-8”就行了,如果你还有其他编码格式你照样可以这样改,嗯,这文章有些人看来很简单,但是对有些人是有帮助的,希望给你们有一定的帮助!
- 巧妙解决JavaWeb开发中中文乱码问题
- javaWeb中解决中文乱码问题
- javaWeb解决中文乱码问题
- javaWeb解决中文乱码问题
- 解决javaWEB开发过程中后台接受前台的中文信息乱码的问题
- javaweb开发中的中文乱码问题,使用Filter过滤器解决
- 包装设计模式解决JavaWeb开发中全站中文乱码问题
- javaweb开发中文乱码问题
- JavaWeb中使用过滤器来解决中文乱码问题
- javaWeb中,解决接收请求数据中的中文乱码问题
- 解决javaWEB中前后台中文乱码问题
- javaweb中中文乱码问题
- javaWeb中解决乱码问题
- javaweb开发中中文乱码问题的解决方案
- javaWeb利用Filter解决中文乱码问题
- 八.javaweb之解决中文乱码问题
- JavaWeb 04 解决中文乱码问题
- JavaWeb 解决超链接参数中文乱码问题
- perl regular expresstion
- 使用Android隐藏类和隐藏方法
- 封装共享内存类
- 應避免的五種注釋
- 移动应用快速开发平台(六)
- 巧妙解决JavaWeb开发中中文乱码问题
- UART和波特率
- SATA
- SQL SERVER日期函数详细用法
- linux 信号
- Oracle EBS R12财务月结视频讲座共6部(完整版)
- [转]Linux 應用 iSCSI 技術 NAS
- JavaScript的正则表达式语法
- 枚举转string输出