近期困扰我非常久的一个问题最终攻克了,为他我头疼了好几天,问题是JSP通过servlet向数据库传值,查询显示在页面的时候出现了乱码,原先我数据库中有两行带有中文的数据,查询的时候倒是没有出现乱码。我debug一下。发现JSP和servlet中全部接受中文字符集的变量都没有出现乱码,我去数据库查看。全部加入的中文字符都是问号,问题发现了,我就百度什么原因,有人说改变tomcat字符集。通过更改server.xml文件的字符集来接受中文字符,

方法一:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>

我试了一下还是没能解决这个问题,

方法二:

假设通过servlet向数据库发送数据中包括中文。能够再servlet中设置

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

方法三:

 在页面时设置charset的字符集

 <%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

方法四:

 在web.xml文件定义编码,同一时候在SetCharacterEncodingFilter类里定义编码为utf-8

web.xml:

 <filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>com.bzu.servlet.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

SetCharacterEncodingFilter类:

public void doFilter(ServletRequest request, ServletResponse response,   FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");//处理编码
response.setCharacterEncoding("UTF-8");//处理编码
chain.doFilter(request, response);//让过滤器运行下一个请求
}
public void destroy() { }
public void init(FilterConfig arg0) throws ServletException {
}

方法五:在form表单里定义编码

 accept-charset="utf-8" onsubmit="document.charset='utf-8';"  

这些方法都试过了,还是出现了乱码。无奈,之后在群里请教大神,有一个大神说,在MySQL数据库里执行以下这一句话

  show variables like '%char%';

我执行之后的结果是

 

大神说当中我这两个须要更改,

 

然后我就找到安装文件夹下的my.ini文件吧把以下几句话给成例如以下格式:

default-character-set=utf8
default-storage-engine=INNODB

之后重新启动MySQL。之后果真问题攻克了。

附带群的qq号, 293074111希望群里能帮助一下真正爱学习Java的同学



JSP,servlet和数据库之间传值出现乱码的问题的更多相关文章

  1. JSP Servlet SQL 三者之间数据传递

    前言: 最近一直在做WEB开发,现总结一下这一段时间的体会和感触. 切记,web开发重点在于前台数据交互,页面美化而不要太沉溺于底层数据. 浏览器时代来到,向我们召唤出更炫.更简洁.更方便.更大气的网 ...

  2. servlet的xx方式传值中文乱码

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOEx ...

  3. JSP+Servlet 无数据库模拟登录过程

    程序目录结构: index.jsp: <%@ page language="java" contentType="text/html; charset=utf-8& ...

  4. Web(Jsp+ Servlet)开发中如何解决中文乱码问题

    1.中文乱码的成因 编码的字符集和解码的字符集不一致. 2.web开发过程中可能出现的乱码的位置及解决方案 ①request乱码 在向服务器传递数据时,所传递的中文有可能出现乱码. post请求(协议 ...

  5. 基于JSP+SERVLET的新闻发布系统(一)

    本系统使用的是基于JSP+SERVLET+TOMCAT6 数据库使用的是MYSQL IDE是MYECLIPSE8.5,页面编辑使用的是百度的ueditor,比较适合咱国人 采用MVC模式,使用的关键技 ...

  6. JSP与Servlet之间传值的一般方法,适合新手做练习

    #JSP与Servlet之间传值 Jsp与Servlet之间的传值有两种,一种是Jsp传值给Sevlet,另一种是Servlet传值给Jsp:使用request.response对象完成传值,具体实现 ...

  7. JSP/ Servlet常见的中文乱码原因

    在开发中,我们经常遇到中文乱码的问题,比方: &浏览器中看到的 Jsp/Servlet 页面中的汉字成了 '?' ?  &浏览器中看到的 Servlet 页面中的汉字都成了乱码  &a ...

  8. jsp+servlet中文乱码问题

    jsp+servlet中文乱码问题 servlet想要获得前台传来的值 String strName=new String(request.getParameter("name") ...

  9. jsp+servlet上传excel并将数据导入到数据库表的实现方法

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

随机推荐

  1. python测试开发django-9.使用navicat连接mysql

    前言 navicat 是一个连接数据库的可视化工具,可以连接mysql和oracle做一些简单增删改查,对于初学者来说非常方便的 navicat安装 navicat版本比较多,分享一个我经常用的版本 ...

  2. Android之判断当前网络状态

    /** * 检测网络是否可用 * @return */ public boolean isNetworkConnected() { ConnectivityManager cm = (Connecti ...

  3. AndEngine中文文档下载地址

    AndEngine doc  downloadhere 下载地址:http://pan.baidu.com/s/1bnjcL0V 文档是由github仓库AndEngine的代码生成. 本doc中包括 ...

  4. GPGPU OpenCL 获取kernel函数编译信息

    使用OpenCL编程时,kernel写成一个单独的文件或者将文件内容保存在一个string中.可以使用clBuildProgram对kernel进行编译链接(compiles & links) ...

  5. C#中的集合(HashTable与Array类)

    一.Array类 1.Array类的属性 序号 属性 & 描述 1 IsFixedSize 获取一个值,该值指示数组是否带有固定大小. 2 IsReadOnly 获取一个值,该值指示数组是否只 ...

  6. Android导航抽屉-Navigation Drawer

    Google今年七月份的时候更新了他们的Google+应用,采用了新的导航方式并抛弃了navigationdrawer.一时之间,又引发了一系列关于NavigationDrawer利弊的讨论,不过对于 ...

  7. jquery选择器用法笔记(第一部分)

    由于我在项目中用jquery比较多,而且觉得jquery真的很不错,尤其是其灵活高效的选择器更是令人无法忘怀.那么,今天就来写一篇非常基础的关于jquery选择器的文章,路过的朋友可以收藏以作参考. ...

  8. Android -- 重置Bitmap大小&&Bitmap转角度

    重置Bitmap大小                                                                           Bitmap bitMap = ...

  9. Linux shell 脚本入门教程+实例

    原文:http://www.wiquan.com/article/136 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是shell仍然是一个非常灵活的工具.She ...

  10. MySQL的IF函数

    格式:IF(Condition,A,B) 意义:当Condition为TRUE时,返回A:当Condition为FALSE时,返回B. 作用:作为条件语句使用. 例子: SELECT    fullN ...