关于jsp和servlet中的乱码问题

在jsp和servlet的开发中,今天自己做的一个小例子中出现了中文乱码问题,用了许多方法,发现还是解决不了。最后我用了过滤器,才算终结。

此方法总结如下:在jsp页面中使用<%@ page pageEncoding="GB2312"%> ,这里的pageEncoding是GB2312,那么我们在过滤器web.xml中所使用的<param-value>GB2312</param-value>也为GB2312。总之一条:就是上述两者一致即可,比如同为UTF-8

我将过滤器的java代码和web.xml的配置写

//--------------java代码部分:CharsetFilter .java

package com;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharsetFilter implements Filter {
private String charset = "GB2312";

public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
request.setCharacterEncoding(charset);
arg2.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
charset = arg0.getInitParameter("charset");
System.out.println("字符过滤器开启,当前状态:"+charset);
}
}

//--------------web.xml部分(以下部分可以直接复制粘贴到WEB.XML下)

<filter>
<filter-name>CharsetFilter</filter-name>
<filter-class>com.CharsetFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

来源:http://blog.csdn.net/lvlingwy
 
 

时间: 2024-07-30 12:40:19

关于jsp和servlet中的乱码问题的相关文章

servlet中的乱码问题(设置了utf-8)

问题描述 servlet中的乱码问题(设置了utf-8) 我在前端通过文本框获取一个值传到servlet中(前端测试过,可以确定不是前端问题),servlet中得到的值却是乱码 下面是servlet中的代码 public class selAllServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcepti

JSP、Servlet中的相对路径和绝对路径

js|servlet JSP.Servlet中的相对路径和绝对路径 JSP和Servlet中的绝对路径和相对路径问题困扰了我好几天,经过努力之后将其部分心得和大家共享. 前提:假设你的Http地址为http://192.168.0.1/你的web应用为webapp,那么你的web应用URL为http://192.168.0.1/webapp/ web应用的目录结构: webapp/ web-inf/ classes/ lib/ web.xml <servlet-mapping> <ser

关于jsp和servlet中实现页面跳转的几种方式总结

 关于jsp和servlet中实现页面跳转的几种方式: 假设要求从test1.jsp 跳转到test2.jsp 一. jsp中跳转: 1. 使用RequestDispatcher.forward方法转发 <%  RequestDispatcher rd = getServletContext().getRequestDispatcher("/test/test2.jsp");  rd.forward(request, response); %> 2. response.se

jsp和servlet中实现页面跳转的方式实例总结_JSP编程

本文实例总结了jsp和servlet中实现页面跳转的方式.分享给大家供大家参考,具体如下: 假设要求从test1.jsp 跳转到test2.jsp 一. jsp中跳转: 1. 使用RequestDispatcher.forward方法转发 <% RequestDispatcher rd = getServletContext().getRequestDispatcher("/test/test2.jsp"); rd.forward(request, response); %>

JSP、Servlet中get请求和post请求的区别总结_java

在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于Servlet中get请求和post请求的区别,现总结如下: 1:请求数据的大小不同. 因为get请求的数据是要追加到URL中,而URL的数据量一般不能超过2K,所以用get请求的方法对数据的大小有限制.而post请求方法是把数据放在消息体中,所以理论上对数据量没有限制.(但是实际操作中也不能能太大) 2:安

JSP/Servlet中的汉字编码问题

js|servlet|编码|汉字|问题 网上就 JSP/Servlet 中 DBCS 字符编码问题有许多优秀的文章和讨论,本文对它们作一些整理,并结合 IBM WebSphere Application Server 3.5(WAS)的解决方法作一些说明,希望它不是多余的.内容: 问题的起源 GB2312-80,GBK,GB18030-2000 汉字字符集及 Encoding 中文转码时´?´.乱码的由来 JSP/Servlet 汉字编码问题及在 WAS 中的解决办法 结束语 参考文章 1. 问

JSP/Servlet 中的汉字编码问题(转)

js|servlet|编码|汉字|问题 . 问题的起源     每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展 ASCII码, 中国的 GB2312-80,日本的 JIS 等,作为该国家/区域内信息处理的基础,有着统一编码的重要作用.字符编码集按长度分为 SBCS(单字节字符集),DBCS(双字节字符集)两大类.早期的软件(尤其是操作系统),为了解决本地字符信息的计算机处理,出现了各种本地化版本(L10N),为了区分,引进了 LANG, Codepage 等概念.但是由于各

JSP/Servlet 中的汉字编码问题

js|servlet|编码|汉字|问题 网上就 JSP/Servlet 中 DBCS 字符编码问题有许多优秀的文章和讨论,本文对它们作一些整理,并结合 IBM WebSphere Application Server 3.5(WAS)的解决方法作一些说明,希望它不是多余的. 1.问题的起源 每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的 ASCII,中国的 GB2312-80,日本的 JIS 等,作为该国家/区域内信息处理的基础,有着统一编码的重要作用.字符编码集按长度分为 S

JSP/Servlet 中的汉字编码问题_JSP编程

JSP/Servlet 中的汉字编码问题 网上就 JSP/Servlet 中 DBCS 字符编码问题有许多优秀的文章和讨论,本文对它们作一些整理,并结合 IBM WebSphere Application Server 3.5(WAS)的解决方法作一些说明,希望它不是多余的.内容: 问题的起源 ??????-80,GBK,GB18030-2000 汉字字符集及 Encoding 中文转码时'?'.乱码的由来 JSP/Servlet 汉字编码问题及在 WAS 中的解决办法 结束语 参考文章 1.