第一种:硬编码方式
1)在 .jsp 页面中,修改字符集设置:
<%@ page pageEncoding="GB2312" %>
或者,<%@ page contentType="text/html;GB2312"
%>
该代码的作用就是告诉JSP引擎(如Tomcat),本页面使用的字符集是GB2312。如果没有此行代码,JSP则使用默认的字符集(通常为utf-8)。
2)更改Servlet中相关的代码:
设置输出页面的字符集GB2312,并对获取的内容进行强制转码;
//JSP引擎会自动把输出的页面转换成指定的字符集
response.setCharacterEncoding("text/html;GB2312");
//使用request.getParpameter("参数名");获得参数值
//参数值默认的字符集是ISO8859_1,如果不进行字符集转换,将导致汉字乱码
String sname = request.getParameter("name") ;
String name = new String(sname.getBytes("ISO8859_1"),"GB2312") ;
//new String(字符串值.getBytes(“原编码方式”),”目录编码方式”);
第二种:采用过滤器方式
1)在 .jsp 页面中,修改字符集设置:
<%@ page pageEncoding="GB2312" %>
或者,<%@ page contentType="text/html;GB2312"
%>
该代码的作用就是告诉JSP引擎(如Tomcat),本页面使用的字符集是GB2312。如果没有此行代码,JSP则使用默认的字符集(通常为utf-8)。
2)编写一个过滤器:CharacterEncodingFilter.java
package
cn.wjz.web.filter;
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
CharacterEncodingFilter implements Filter {
private
FilterConfig config ;
//此Filter被释放时的回调方法
public void destroy() {
}
//主要做过滤工作的方法
//FilterChain用于调用过滤器链中的下一个过滤器
public void doFilter(ServletRequest request,
ServletResponse response,FilterChain chain)
throws IOException, ServletException {
//获取Filter的初始化参数的值
String encoding = config.getInitParameter("encoding") ;
if(encoding != null && !"".equals(encoding)){
//设置请求数据的编码方式
request.setCharacterEncoding(encoding) ;
}
//把请求和响应对象传给过滤链中的下一个要调用的过滤器或Servlet
chain.doFilter(request, response) ;
}
//Filter初始化时的回调方法
//FilterConfig接口实例中封装了这个Filter的初始化参数
public void init(FilterConfig config) throws ServletException {
this.config = config ;
}
}
3)注册过滤器,修改配置文件web.xml
<!-- 定义一个过滤器
-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>cn.wjz.web.filter.CharacterEncodingFilter
</filter-class>
<!-- 配置初始化参数 -->
<init-param>
<param-name>encoding</param-name>
<!—设置encoding的值为GB2312 -->
<param-value>GB2312</param-value>
</init-param>
</filter>
<!-- 过滤器的映射配置 -->
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
通过上述两种解决方案,我们可以有效解决Struts2资源文件在JSP页面中显示乱码的问题。虽然第一种方法可以达到目的,但其带来的维护不便使其不被推荐;相比之下,安装PropertiesEditor插件不仅操作简便,还能彻底解决...
本文将详细介绍如何解决JSP页面间传递变量时出现的乱码问题。 首先,我们来看方案(一),这是通过在JSP脚本中设置字符编码来解决局部乱码的方法。在JSP页面中插入以下代码: ```jsp ("GBK"); %> ("GBK"); %> ``` ...
解决 JSP 中文乱码的方案 JSP 中文乱码是动态网站开发中经常遇到的问题,本文将从产生 JSP 中文乱码的四种类型入手,分析乱码产生的原因,并给出消除乱码的具体方法。 一、页面中文乱码的处理 JSP 采用 ISO-8859-...
此外,还有 post 方式传值乱码和 get 方式传值乱码两种情况: post 方式传值乱码是由于 request 存储信息的编码设置导致的,可以通过设置 request.setCharacterEncoding("UTF-8") 来解决。 get 方式传值乱码是由于...
本文将详细介绍如何解决MyEclipse中JSP页面预览时出现的中文乱码问题,并提供一个完善的解决方案。 #### 一、问题分析 首先,我们需要了解为什么会出现中文乱码的问题。通常来说,这个问题与字符编码设置不一致...
这两种方式都可以实现对服务器端输出内容编码格式的设定,从而避免浏览器端出现中文乱码。 2. **正确使用PrintWriter** 使用`response.getWriter()`获取到`PrintWriter`对象后,确保在此之前已经正确设置了响应...
在JSP开发中,中文乱码是一个常见的问题,它源于Java和JSP处理中文字符的方式。Java语言核心和class文件基于Unicode,确保了程序的跨平台性,但也为中文乱码问题埋下了伏笔。主要的乱码问题分为两类:一是Java和JSP...
本文详细探讨了JSP中汉字乱码现象的原因,并提供了一系列有效的解决方案。通过对JSP文件与响应编码方式的设置、文件头部的字节顺序标记(BOM)、表单数据的读取、请求参数的处理等多个方面进行深入分析,帮助开发者...
在开发Java Web应用时,JSP中文乱码是一个常见问题,主要是由于字符编码不一致导致的。以下是针对这个问题的详细解析和解决方案: ...使用过滤器可以提供一种优雅的全局解决方案,减少重复编码的工作。
本文将详细介绍两种解决JSP页面URL参数乱码的方法,虽然不能保证100%有效,但它们是实践中常用且有效的解决方案。 **方法一:修改Tomcat配置** 1. 首先,我们需要进入Tomcat服务器的配置目录,通常是`$CATALINA_...
### JSP乱码解决方案大全 #### 一、概述 在使用Java Server Pages(JSP)进行Web开发时,经常会遇到中文乱码的问题。这不仅影响用户体验,还可能导致数据错误。本文将详细介绍JSP中出现乱码的原因及相应的解决方法...
接下来,我们来看看两种常见的JSP页面乱码情况及其解决方案: 1. **未指定使用字符集编码**: 当JSP页面中包含中文字符,但没有明确指定字符集时,浏览器会默认使用ISO-8859-1编码,导致乱码。解决这个问题的方法...
为了避免这种情况的发生,可以通过以下两种方式设置JSP页面和浏览器使用统一的字符集: - **在JSP页面中设置字符集:** ```jsp ;charset=utf-8" %> ``` 这段代码指定了JSP页面使用UTF-8字符集,并告知浏览器...
解决JSP页面乱码的方法通常分为两种情况: 1. **未指定字符集编码**: 如果JSP页面没有明确指定字符集,比如在`<head>`部分通过`<meta>`标签或在页面指令中定义`contentType`,当页面中存在中文字符且默认的ISO-...
### JSP中文乱码问题分析及处理方法 #### 一、问题根源剖析 JSP(Java Server Pages)作为Web开发中的一种技术,广泛应用于动态网页的生成。然而,在处理中文字符时,JSP经常会遇到“乱码”问题,即中文字符无法...
### Eclipse下Properties文件中文乱码解决方案详析 在IT开发领域,尤其是使用Eclipse作为集成开发环境(IDE)的开发者,经常会遇到一个令人头疼的问题——Properties文件中的中文字符出现乱码。这一现象不仅影响...
在JSP开发中,文件上传是一项常见的功能,而SmartUpload和UploadBean是两种常用的文件上传组件。本篇文章将深入探讨这两个组件以及如何解决文件上传时出现的中文乱码问题。 首先,SmartUpload是一个强大的文件上传...
首先,JSP输出中文乱码的问题通常是由于没有明确指定JSP页面的字符编码。解决这个问题的方法是在JSP页面顶部添加`; charset=utf-8"%>`指令,指示JSP使用UTF-8编码进行内容显示。同时,为了确保浏览器正确解析页面,...
请求乱码可以分为两种:参数放在 URL 地址中导致的乱码和参数放在请求体中导致的乱码。对于 URL 地址中的参数乱码,可以在 Tomcat 配置中解决,修改 Tomcat 的 conf/server.xml 文件,修改 URL 编码格式。对于请求体...