`

使用过滤器,处理中文显示乱码,并且在插入到mysql数据库的中文数据不为乱码

阅读更多
写道
你可以单独写一个过滤器 代码我有现成的 我看看给你写在这也可以

先新建一个Servlet 要求extends HttpServlet implements Filter

package com.huangshan.filt;

import java.io.IOException;
import java.io.PrintWriter;

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.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class myfilt extends HttpServlet implements Filter {

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
// TODO 自动生成方法存根

// 处理中文乱码问题
arg0.setCharacterEncoding("gbk");
//程序继续前进
arg2.doFilter(arg0, arg1);


}

public void init(FilterConfig arg0) throws ServletException {
// TODO 自动生成方法存根

}

}

完成以上操作以后 再修改web.xml在中间加入以下代码
<filter>
<filter-name>myfilt</filter-name>
<filter-class>com.huangshan.filt.myfilt</filter-class>
</filter>
<filter-mapping>
<filter-name>myfilt</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

myfilt:建立Servlet的类名称
com.huangshan.filt.myfilt:类的路径
别的就不需要修改了

 

分享到:
评论

相关推荐

    MySQL数据库—乱码总结

    在使用MySQL数据库的过程中,字符集设置不当可能会导致数据存储或查询时出现乱码问题。本文将针对MySQL数据库中的乱码现象进行深入分析,并提供相应的解决策略。 #### 二、MySQL数据库乱码概述 MySQL数据库中的...

    使用过滤器解决中文乱码问题

    在IT行业中,中文乱码是一个常见的问题,尤其是在处理文本数据时。这可能出现在网页显示、文件读取或数据库存储等多个场景。"过滤器"(Filter)是Java Web开发中的一个概念,它允许我们在请求到达目标资源(如...

    JSP存到数据库乱码解决办法

    例如,浏览器可能使用GB2312编码,而服务器端使用的是ISO-8859-1编码,这就可能导致前端正常显示的中文字符在后端被错误解析为乱码。 #### 2. 解决方案:配置CharacterEncodingFilter Spring框架提供了一个非常...

    mysql插入数据库编码解决

    在处理MySQL数据库插入中文数据时,经常遇到编码问题导致乱码。这主要是由于不同环节的编码不一致所造成的。以下是两种解决方法,适用于普通Web项目和Struts框架的项目。 ### 方法一:普通Web项目 #### 1. 页面...

    java+jsp+mysql开发 web项目处理中文乱码问题

    处理 Java+jsp+mysql 开发 web 项目中文乱码问题 在 Java+jsp+mysql 开发 web 项目中,中文乱码问题是一个常见的问题,影响着项目的正常运行。下面我们将从四个方面来解决中文乱码问题: 一、Jsp 输出中文的乱码...

    hibernate+mysql 中文存入数据库乱码解决方法

    在开发Java Web应用时,特别是涉及到Hibernate与MySQL的整合时,中文字符的存储和显示问题是一个常见的挑战。中文字符乱码通常发生在数据的输入、处理和输出三个环节,需要在多个层面进行配置和调整以确保正确的字符...

    jsp+servlet+mysql乱码解决的这天

    8,数据库连接url中添加useUnicode=true&characterEncoding=UTF-8参数,编写filter过滤器设置请求和响应的编码格式为gb2312,最后配置web.xml文件中filter映射关系,来确保中文字符的正确显示。 jsp+servlet+mysql...

    解决数据库存取乱码问题

    在Tomcat等Web服务器中,`web.xml`配置文件可以通过`&lt;filter&gt;`和`&lt;filter-mapping&gt;`元素设置过滤器,如`CharacterEncodingFilter`,强制请求和响应使用UTF-8编码。 5. **页面编码**:HTML或JSP页面也需要明确指定...

    在mysql数据库中传入中文字符,并实现正常显示.pdf

    在使用MySQL数据库处理中文数据时,正确的配置和设置至关重要,这不仅能确保中文字符的正确存储,还能保证在查询和显示时不会出现乱码等问题。下面将详细介绍如何在MySQL数据库中正确地处理中文字符。 #### 1. 安装...

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇

    该问题通常出现在处理中文字符时,由于编码设置不当导致中文显示为乱码或无法正常读取。为了确保系统能够正确处理中文字符,我们需要对各个环节进行细致的配置。 ### 一、理解乱码产生的原因 乱码通常是由于不同...

    乱码过滤类和配置使用方法

    它通过识别和转换不同的字符编码格式,确保数据在处理前后保持一致,从而避免乱码现象。一个基本的乱码过滤类可能会包含以下几个核心功能: 1. **编码检测**:检测输入的数据使用的是哪种字符编码,例如UTF-8、GBK...

    web项目部署到服务器后中文乱码的解决.docx

    在将Web项目部署到服务器后,中文参数值显示成了乱码,这是什么原因呢?这是因为项目中的字符编码、Tomcat的字符编码、MyEclipse的字符编码以及建立数据库时的编码不一致造成的。解决办法就是逐一设置字符编码。 ...

    Mac Mysql数据库中文乱码问题解决

    在使用Mac OS操作系统中,MySQL数据库处理中文数据时可能会出现乱码问题,这通常是由于编码设置不一致导致的。本文将详细介绍如何解决Mac Mysql数据库中的中文乱码问题。 首先,当我们在Java等编程语言中使用框架...

    MyEclipse中文显示乱码问号非正常显示

    ### MyEclipse中文显示乱码问题及...需要注意的是,在进行这些设置时,应保持编码的一致性,即确保项目文件、工作空间、数据库以及过滤器等各个环节都采用相同的字符集编码,这样才能从根本上避免中文乱码问题的发生。

    解决Linux下Tomcat向MySQL插入数据中文乱码问题

    在Windows上开发的项目,可能在本地环境使用了某种特定的字符编码(如UTF-8),但当项目被部署到Linux服务器,特别是与MySQL数据库交互时,如果不做相应的配置调整,可能会因为编码不匹配导致中文乱码。这个问题通常...

    java乱码处理

    1. **Java和JSP文件本身的编译乱码问题**:当Java或JSP源文件中包含中文字符,并且在编译过程中使用的编码与源文件的实际编码不一致时,就会出现乱码。 - **解决方案**:为了避免此类问题,可以在编写Java源文件时...

    乱码处理操作类

    在IT行业中,乱码问题是一个常见的困扰,尤其是在处理多语言环境或者进行数据传输时。"乱码处理操作类"指的是为了正确显示或处理文本而设计的特定代码类,通常用于解决Java SSH(Spring、Struts、Hibernate)框架下...

Global site tag (gtag.js) - Google Analytics