解决Java J2EE乱码问题的方法_java

乱码是j2ee中一个比较常见的问题。遇到一两个问题的情况下,可以用new String(request.getParameter(xxx).getBytes("ISO-8859-1"),"UTF-8")来解决。遇到多的情况下,就最好用过滤器。
过滤器只需要注意2个地方即可——类和web.xml
1.在web.xml上面的发布如下:

<fileter>
  <!-- 类名 -->
  <filter-name>SetCharsetEncodingFilter</filter-name>
  <!-- 类的路径 -->
  <filter-class>SetCharacter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
  </init-param>
  <filter-mapping>
    <filter-name>SetCharsetEncodingFilter</filter-name>
    <!-- 设置所有的文件遇到过滤器都要被拦截 -->
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</fileter>

2、过滤类

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 SetCharacter implements Filter {
  protected String encoding = null;
  protected FilterConfig filterConfig = null;
  protected boolean ignore = true;
  public void init(FilterConfig arg0) throws ServletException {
    this.encoding = arg0.getInitParameter("encoding");
    String value = arg0.getInitParameter("imnore");
    if (value == null) {
      this.ignore = true;
    } else if (value.equalsIgnoreCase("true")) {
      this.ignore = true;
    } else if (value.equalsIgnoreCase("yes")) {
      this.ignore = true;
    }
  } 

  public void doFilter(ServletRequest arg0, ServletResponse arg1,
      FilterChain arg2) throws IOException, ServletException {
    if (ignore || (arg0.getCharacterEncoding() == null)) {
      String encoding = selectEncoding(arg0);
      if (encoding != null)
        arg0.setCharacterEncoding(encoding);
    }
    arg2.doFilter(arg0, arg1);
  } 

  private String selectEncoding(ServletRequest arg0) {
    return (this.encoding);
  } 

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

}

在web.xml文件中,以下语法用于定义映射:
1、以“/”开头和以“/*”结尾的是用来做路径映射。
2、以前缀“*.”开头的是用来做扩展映射。
3、以“/”是用来定义default servlet映射。
4、剩下的都是用来定义详细映射。比如:/aa/bb/cc.action

以上就是解决Java J2EE乱码问题的思路,分享给大家,希望大家遇到类似问题可以顺利解决。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, 乱码
j2ee
java乱码解决方法、java中文乱码解决总结、java解决中文乱码、java解决乱码问题、java乱码问题怎么解决,以便于您获取更多的相关知识。

时间: 2024-08-08 07:05:38

解决Java J2EE乱码问题的方法_java的相关文章

5种解决Java独占写文件的方法_java

本文实例讲解了5种解决Java独占写文件的方法,包含自己的一些理解,如若有不妥的地方欢迎大家提出. 方案1:利用RandomAccessFile的文件操作选项s,s即表示同步锁方式写 RandomAccessFile file = new RandomAccessFile(file, "rws"); 方案2:利用FileChannel的文件锁 File file = new File("test.txt"); FileInputStream fis = new Fi

java中文乱码之解决URL中文乱码问题的方法_java

我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不同的操作系统.不同的浏览器.不同的网页字符集,将导致完全不同的编码结果.如果程序员要把每一种结果都考虑进去,是不是太恐怖了?有没有办法,能够保证客户端只用一种编码方法向服务器发出请求? 有!这里我主要提供以下几种方法 一.javascript使用javascript编码不给浏览器插手的机会,编码之后

escape解决AJAX中文乱码的简单方法

在使用AJAX开发网站时,经常有朋友遇到乱码的问题,而且一下子难以找到解决方法.其实解决AJAX中文乱码问题很简单. 1.服务端程序: <% liststr="AJAX中文乱码的简单解决方法" sponse.write escape(liststr) '用escape编码 %> 2.客户端JAVASCRIPT程序 function toserver(url) { var req = new XMLHttpRequest(); if (req) { req.onreadyst

java读取properties配置文件的方法_java

本文实例讲述了java读取properties配置文件的方法.分享给大家供大家参考.具体分析如下: 这两天做java项目,用到属性文件,到网上查资料,好半天也没有找到一个满意的方法能让我读取到.properties文件中属性值,很是郁闷,网上讲的获取属性值大概有以下方法,以下三种方法逐渐优化,以达到最好的效果以下都以date.properties文件为例,该文件放在src目录下,文件内容为: startdate=2011-02-07 totalweek=25 方法一: public class

java.util.concurrent.ExecutionException 问题解决方法_java

java.util.concurrent.ExecutionException错误信息,这里给出解决方案,大家根据具体要求更改. SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Standa

Java获取mac地址的方法_java

本文实例讲述了Java获取mac地址的方法.分享给大家供大家参考.具体如下: /* * GetMacAddress .java * * description:get Mac addreess * * @author hadeslee * * Created on 2007-9-27, 9:11:15 * * To change this template, choose Tools | Templates * and open the template in the editor. */ pa

Java实现MD5加密的方法_java

本文实例讲述了Java实现MD5加密的方法.分享给大家供大家参考.具体实现方法如下: import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5HashUtil { private MessageDigest md = null; private static MD5HashUtil md5 = null; private static final char

java执行Linux命令的方法_java

本文实例讲述了java执行Linux命令的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: public class StreamGobbler extends Thread {            InputStream is;      String type;        public StreamGobbler(InputStream is, String type) {          this.is = is;          this.type = ty

java实现遍历Map的方法_java

本文实例讲述了java实现遍历Map的方法.分享给大家供大家参考.具体如下: package com.yenange.test3; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { public static void main(String[] args) { Map map=new HashMap(); map.put(1, 1); map.put