Web项目 Jsp+Tomcat+Mysql乱码解决终极篇
写在之前:
编码出现错误了在web开发的情况下是常常出现的问题。特别是接触了Jsp以来,所学的一切东西,Tomcat、Mysql每样东西都产生了乱码。经过了几个web项目的开发,我总结出来了,一套系统的解决方案,仅供大家参考学习。
如果你已经是一位高手,或者对乱码有了深入的了解,就请放过本文吧,小弟设计web不久,所写的文章必定会有不足,指出就好,小弟脆弱的心灵经不起如潮涌般的狂踩。谢谢。
----------------------------------------------------------------------------------------
乱码由来:
据江湖盛行的传说,文字的编码分为很多的种类,unicode、Utf-8、GBK、GB2312等等编码。各个国家,各个地方的使用文字不同一,所以编码不一样。当然不一样编码,他们所编码的格式也就不一样。当使用一种编码格式去对文字编码,再用另一种格式对文字进行解码,所得的结果就变成了乱码。
--------------------------------------------------------------------------------------------
有人传言说,在Jsp、Tomcat、Mysql上统一编码就可以解决问题了。
此话是没有错的,但是能真正的的统一编码又有几个。
--------------------------------------------------------------------------------------------
乱码出现不用慌:
三个问题问自己
①写了过滤器没有?
②Jsp头部的编码与MySQL里的编码一样吗?
③Jsp、Html等文件的存储格式有没有改动(默认是unicode,一般不会改)?
以上三个问题一般有过web学习的同学都会注意了。如果没有做,那就先完成以上步骤再向下看。
但是,以上都做了还出现乱码怎么办? 这个就是本文的重点了。
-----------------------------------------------------------------------------
以下方法我称为(定位法):
定位法——主要是看编码出错时有哪里引起的,哪里出错就在哪里修改。
需要在以下几个地方打印或查看
①网页显示页面
②处理动作的action
③数据库操作的SQL语句
④数据库中的内容
以下我们统一用一个UTF-8编码作为例子
1、如果一个提交信息页面,输入中文,然后在②处理动作的action中所打印的就出现乱码了。
①获取表单提交的数据时的中文乱码问题
原因:由于Tomact的J2EE实现对表单提交,即以post方式提交的参数采用默认的ISO-8859-1来处理,所以中文就会出现乱码。
解决:检查filter设置是否错误,或者没有在xml中配置生效。
②页面之间传中文参数问题
在页面之间传中文参数,需要在tomact的安装目录的/conf/server.xml文件中找到Connector,加上URIEncoding="utf-8",如下
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8"/>
2、如果一个页面提交信息,①网页显示页面②处理动作的action显示和打印都的都是正常的,而③数原因:数据库安装的时候设计的默认连接不是UTF-8
据库操作的SQL语句中打印出现乱码。如:
insert into t_userinfo(user_num,user_password,user_type,user_name,user_comments) values ('20090840122','123456',0,'???','???')
解决:连接数据库的时候的语句,加上一句?useUnicode=true&characterEncoding=UTF-8"
即test数据库连接为:
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
3、如果一个页面提交信息,之前的都没有出现乱码,却在④数据库中的内容显示的为乱码,或者,直接报错,无法直接添加信息。
如:
只要出现中文的地方都变为 了 ???
原因:数据库表的编码格式,数据库字段的编码格式,与web项目的编码格式不统一。
即如图所示地方没设置好:
解决:修改一样即可。
4、一个读取显示页面,如果④数据库中的内容显示是正常的,但是①网页显示页面②处理动作的action,打印显示却是乱码。
原因:信息存储不存在乱码,乱码处于传输和显示上。
解决:检查filter设置的正确与否,检查JSP页面的默认编码是否与数据库统一。
5、一个读取显示页面,之前的都没有错,只有①网页显示页面是乱码。
原因:信息存储不存在乱码,乱码处于显示上。
解决:检查JSP页面的默认编码是否与数据库统一。
即检查,
Jsp页面头部加上:<%@ page contentType="text/html;charset=UTF-8" %>
head部分加上:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
这两句话是否存在,存在是否错误。
--------------------------------------------------------------------------------------------
小结:
以上这些步骤能很好的应对我们WEB项目上常出现的各种乱码问题,“定位法”是本人所想,个人感觉,在查找编码错误的时候,具有“快”、“狠”、“准”的效果,或许有少许不合理,或许能对大家多少有点帮助。书写本文,时间多少有点匆忙如有错误,就请指出,相互学习,相互进步,谢谢。
<!--EndFragment-->
- 大小: 7.8 KB
- 大小: 47.5 KB
- 大小: 64 KB
分享到:
相关推荐
Struts Hibernate MyEclipse Tomcat MySQL JSP 乱码 编码出错 内码设定
显示界面,JSP 2.0 JAVA容器:Tomcat 5.X MVC构架:Struts 1.2 ORM工具:Hibernate 3 数据库:MySQL 5.0 编译IDE:MyEclipse 5.0
解决jsp+MysQL输入和输出中文乱码的方法 配置是tomcat+mysql,版本都是最新的
jsp 乱码详解(jsp,mysql,tomcat) 基本涵盖所有的乱码解决方法。使用的utf-8作为例子
后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 select version() 获取数据库版本'5.6.00' 图片无法加载是因为拦截器,修改拦截器,或者删除...
后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 http://localhost:8080/exam/ select version() 获取数据库版本'5.6.00' 图片无法加载是因为...
非常全的中文乱码问题,从jsp页面到mysql数据库,还有tomcat服务器出现的系列乱码问题,都有提到。本人总结的文档。推荐给初学者。
使用最新技术开发:eclipse2022,支持java:17or8,支持mysql:8.0or5.7or.56,tomcat:10 普通用户 具有按学号学好查询学生资料功能,普通用户必须先注册,然后登陆、查询。 管理员 可以对学生进行添加学生资料、删除...
后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 http://localhost:8080/exam/ select version() 获取数据库版本'5.6.00' 图片无法加载是因为...
如果运行后添加信息乱码,请设置项目GBK编码,配置Tomcat服务器GBK编码,也可能js需要设置GBK编码。 ## 运行环境:jdk1.8/jdk1.9 ## IDE环境: Eclipse,Myeclipse,IDEA都可以 ## tomcat环境: Tomcat8.x/9.x
如果运行后添加信息乱码,请设置项目GBK编码,配置Tomcat服务器GBK编码,也可能js需要设置GBK编码。 ## 运行环境:jdk1.8/jdk1.9 ## IDE环境: Eclipse,Myeclipse,IDEA都可以 ## tomcat环境: Tomcat8.x/9.x
如果运行后添加信息乱码,请设置项目GBK编码,配置Tomcat服务器GBK编码,也可能js需要设置GBK编码。 运行环境jdk1.8jdk1.9 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat8.x9.x -------- 不懂运行,...
演示地址 http://www.liyunet.com/bbs/index.jsp<br>如果出现乱码(JAVA的特权),请修改/WEB-INF/systemconfig.properties文件的 #####################################################$ ######编码转化...
本文档详细地介绍了如何解决MySql数据库中的中文乱码问题,此问题的解决将极大地帮助基于MySql的PHP编程、JSP编程、Servlet编程及C#或.Net编程!测试过的开发平台包括 Netbeans和Eclipse。测试过的服务器包括Apache、...
主要针对java+mysql开发环境提出的乱码解决方案,只要作相应修改,可以用于不同语言环境的乱码问题解决。
如果运行后添加信息乱码,请设置项目GBK编码,配置Tomcat服务器GBK编码,也可能js需要设置GBK编码。 ## 运行环境:jdk1.8/jdk1.9 ## IDE环境: Eclipse,Myeclipse,IDEA都可以 ## tomcat环境: Tomcat8.x/9.x
JSP+MYSQL 库存管理系统 第一章、引言 ………………………………………………………- 3 - 第二章、仓管管理系统的概述 ……………………………………- 5 - 2.1 功能设计 …………………………………………………- 5 ...
项目亲自测试,绝对可以正常运行 JavaWeb家居电子商城管理系统,没有spring框架,纯servlet,线上家居电子商城系统,主要实现了用户注册,登录、浏览,查看家居商品信息,购物车,订单,支付,查看通知以及管理员对...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...