`
liyanhui
  • 浏览: 350562 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsp乱码2

    博客分类:
  • jsp
阅读更多
(转载 OursBlanc 北极熊)

原先从没有重视乱码,因为我总以为java已经完美的解决了这个问题,而且在以前的jsp参数传递中也从没有出现过乱码。但,问题还是存在的,这两天的界面突然不能显示中文。什么 charset="GB2312"啦,什么<meta>了,什么request.setCharactorEncoding()啦,都试过了,还是不行。从网上搜了半天,也都是上面几种解决方法。这样最郁闷了:从百度里输入“jsp乱码”,哗哗,一大堆,真高兴,可是点开才知道,表面现象下的残酷。都不是我遇到的这种情况。

         唉,最后只好强制转换了……String str=new String(request.getParameter("productName").getBytes("ISO-8859-1"),"GB2312");       好大一串!! 不得以,还是加上了个servlet过滤器:

package servlet;

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;
import javax.servlet.UnavailableException;

public class ChangeTypeFilter implements Filter {
 protected String encoding = null;
 protected FilterConfig filterConfig = null;
 protected boolean ignore = true;

 public void destroy() {
  this.encoding = null;
  this.filterConfig = null;
 }

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

 // 设置正确的编码方式
 if (ignore || (request.getCharacterEncoding() == null)) {
  String encoding = selectEncoding(request);
  if (encoding != null)
   request.setCharacterEncoding(encoding);
 }

 // 传递到下一层过滤器
 chain.doFilter(request, response);

}

public void init(FilterConfig filterConfig) throws ServletException {

 this.filterConfig = filterConfig;
 this.encoding = filterConfig.getInitParameter("encoding";
 String value = filterConfig.getInitParameter("ignore";
 if (value == null)
  this.ignore = true;
 else if (value.equalsIgnoreCase("true")
  this.ignore = true;
 else if (value.equalsIgnoreCase("yes")
  this.ignore = true;
 else
  this.ignore = false;

}

protected String selectEncoding(ServletRequest request) {
 return (this.encoding);
}

}



  编好了过滤器之后,还要在TOMCAT中配置过滤器。

      打开WEB-INF目录下的web.xml文件,添加下面的内容:

<filter>
 <filter-name>Set Character Encoding</filter-name>
 <filter-class>servlet.ChangeTypeFilter</filter-class>
 <init-param>
  <param-name>encoding</param-name>
  <param-value>GB2312</param-value>
 </init-param>
</filter>

<filter-mapping>
 <filter-name>Set Character Encoding</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>



分享到:
评论

相关推荐

    JSP乱码 N种解决方案

    本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...

    JSP乱码解决方案

    JSP乱码通常发生在字符编码不一致或者处理不当的情况下,这会影响用户界面的显示,导致文字显示为不可读的方块或者特殊字符。本文将深入探讨JSP乱码的原因及其解决方案,帮助开发者有效地处理这类问题。 ### 1. JSP...

    jsp乱码解决方案 本方案解决了jsp常见的乱码问题

    ### jsp乱码解决方案 #### 一、引言 在Web开发中,特别是使用Java Server Pages (JSP)进行开发时,字符编码问题是一个经常遇到的技术难题。如果处理不当,很容易导致网页显示乱码,影响用户体验及数据的正确性。...

    jsp编码 jsp乱码

    jsp编码 jsp乱码解决方案 jsp编码是Java Web开发中的一项重要技术,jsp编码直接影响着Web应用程序的正常运行。jsp编码乱码问题是jsp开发中常见的问题之一,该问题可能会导致jsp页面显示乱码,影响用户体验。因此,...

    解决jsp页面乱码

    解决jsp页面乱码,页面信息配置,tomcat配置以及各种信息配置

    JSP中文乱码处理JSP中文乱码处理

    2. **Web容器编译JSP** 当Web容器(如Tomcat)将JSP编译为Servlet时,它会读取硬盘上的JSP文件。如果没有指定pageEncoding,JSP规范规定默认编码为ISO-8859-1,但不同的Web容器可能会有所不同。在JSP文件中明确指定...

    jsp乱码的3种解决方法

    本文将详细讲解三种解决JSP乱码的方法。 ### 1. 设置页面编码 JSP页面的编码设置是解决乱码问题的基础。在JSP文件的顶部,使用`&lt;%@ page&gt;`指令设置页面编码。例如: ```jsp ;charset=UTF-8" language="java" %&gt; `...

    jsp页面乱码处理

    本文将根据“jsp页面乱码处理”的标题与描述,深入解析解决JSP乱码问题的策略,并结合具体代码实例,帮助开发者彻底摆脱这一难题。 #### JSP乱码的根本原因 JSP页面的乱码通常源自字符编码不一致,即不同环节使用...

    jsp 乱码详解(jsp,mysql,tomcat)

    jsp 乱码详解(jsp,mysql,tomcat) 基本涵盖所有的乱码解决方法。使用的utf-8作为例子

    jsp中文乱码问题jsp中文乱码问题详解

    2. 表单使用Post方式提交后接收到的乱码问题 在使用Post方式提交表单时,如果没有指定提交的编码格式,tomcat将使用iso8859-1编码格式进行提交,这将导致乱码。 解决方法有三种: A. 在接受参数时进行编码转换,...

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的...

    web项目乱码问题 jsp乱码问题解决

    2. 设置JSP页面编码:在JSP文件顶部使用`&lt;%@ page pageEncoding="UTF-8"%&gt;`声明页面编码。 3. 设置HTTP响应头:确保服务器响应的Content-Type头中的charset与JSP页面编码一致,例如`Content-Type: text/html;charset...

    Jsp乱码问题解决

    ### JSP乱码问题解决 #### 一、JSP页面显示乱码 在JSP页面开发过程中,中文乱码是一个常见的问题。这个问题主要是由于服务器端和客户端(浏览器)的编码设置不一致导致的。 **原因分析:** 1. **服务器编码设置...

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示乱码的现象。这种问题的解决办法可以从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交...

    jsp乱码解决超酷,通过web.xml配置

    "jsp乱码解决超酷,通过web.xml配置"这个标题表明,我们将通过配置`web.xml`文件来解决JSP页面中的乱码问题。下面将详细介绍这个过程以及相关的知识点。 首先,我们需要理解JSP乱码产生的原因。当用户通过表单提交...

    Jsp乱码解决方案 word文档

    JSP乱码问题主要由字符编码不一致引起,通过统一和正确地设置各个环节的编码,可以有效避免这类问题。对于具体的项目,需要根据实际情况分析乱码产生的环节,并针对性地调整相关配置。提供的解决方案涵盖了常见的...

    servlet与jsp中文乱码处理

    下面将详细阐述servlet和jsp中文乱码的处理方式。 1. **理解编码基础** - **Unicode**:全球统一的字符编码标准,包含了世界上几乎所有的字符。 - **UTF-8**:最常用的Unicode编码方式,它以字节为单位进行编码,...

    JSP乱码问题

    JSP乱码问题解决方案 JSP乱码问题是指在JSP页面中遇到的字符编码问题,导致页面显示乱码的现象。下面是解决JSP乱码问题的一些常见方法: 首先,在JSP页面中,我们可以使用String的getBytes()方法将字符串转换为...

    jsp中文乱码的解决方案

    文档《JSP各种乱码的处理(一).doc》和《JSP各种乱码的处理(二).doc》中可能详细列举了各种JSP乱码问题的实例及解决方法,包括但不限于文件上传、读取流、数据库操作等方面,建议参考学习,以便更全面地理解并解决...

Global site tag (gtag.js) - Google Analytics