- 浏览: 241582 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
heartneo:
破解原作真是太厉害了。
Spket 1.6.18的简单破解 -
mwp1115:
谢谢,现在官方的demo代码还是jdk1.2的
Swing JTreeTable范例 -
bulktree:
Spket 谢谢了,js格式化 行宽太小了,你这个帮了我很大的 ...
Spket 1.6.18的简单破解 -
REGAL2T:
谢谢, 可以使用了
Spket 1.6.18的简单破解 -
wuwei1616:
我想问下lz 我生成了 wsdl文件 我用客户端去调用 怎么总 ...
调用CXF工具 生成 WSDL
在做java开发时,我们会经常碰到中文显示出错的问题,解决方法一般是设置encoding,过滤器,(unicode码)资源文件等等,好用的还是过滤器。
过滤器的实现代码在网络上可以找到不少,但自己备份几个还是不错的。
- 过滤器1
/* * * TALENTBASE 3.0 Copyright 2005 Neusoft, Co.ltd . * All rights reserved. * * Package: com.neusoft.talentbase.framework.filter * FileName: CharsetEncodingFilter.java * by zhangzhh * * For * * version: 1.0 * * Created on 2005-3-22 * Last Modified: * * History: * * */ package com.cvicse.inforstudio.weblogs.util; /** * * @author zhangzhh * @version 1.0 * </pre> * Created on :2005-3-22 17:02:47 * LastModified: * History: * </pre> */ import javax.servlet.*; import java.io.IOException; public class CharsetEncodingFilter implements Filter { private String defaultEncode = "UTF-8"; public void init(FilterConfig config) throws ServletException { if(config.getInitParameter("charset")!=null){ defaultEncode=config.getInitParameter("charset"); } } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ServletRequest srequest=request; srequest.setCharacterEncoding(defaultEncode); chain.doFilter(srequest,response); } }
- 过滤器2
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class SetCharacterEncodingFilter extends HttpServlet implements Filter { private FilterConfig filterConfig; //Handle the passed-in FilterConfig public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } //Process the request/response pair public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) { try { request.setCharacterEncoding("GBK"); filterChain.doFilter(request, response); } catch (ServletException sx) { filterConfig.getServletContext().log(sx.getMessage()); } catch (IOException iox) { filterConfig.getServletContext().log(iox.getMessage()); } } //Clean up resources public void destroy() { } }
- 过滤器3
package test; 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; /** * @author Administrator * * TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板 */ public class SetCharacterEncodingFilter 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 { // Conditionally select and set the character encoding to be used if (ignore || (request.getCharacterEncoding() == null)) { String encoding = selectEncoding(request); if (encoding != null) request.setCharacterEncoding(encoding); } // Pass control on to the next filter 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); } }
等一下,这还没完,还要在web.xml里面配置一下:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>myweb</display-name> <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>test.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
。。。。。。。。。。。。。。。。。。。。。。。。。。。
类似的东西不少,前两个用过,不错;后面的从视觉上看挺漂亮,推荐!
=================================================================================
应用中总是发现各种各样的乱码问题,简单分类一下:
1.Java文件和JSP文件编码时产生乱码
即:在Java和jsp文件中包含中文字符,而Java或jsp在编译的时候是采用字节流的(其他编码),产生编码不一致,出现乱码。解决方法:
java文件:文件属性中的Encoding编码设置为GBK、GB2312或UTF-8
JSP文件:在文件头设置<%@ page contentType="text/html;charset=GBK"%>
2.和其他应用交互时产生乱码,通常会在Request中的URI产生乱码。
原因是很多程式是基于字节流的,而Java程序是基于字符流。解决办法:
Tomcat:修改conf/server.xml,找到
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443" URIEncoding="GBK" />
在最后面加上URIEncoding="GBK".
另一种就是在HttpServelet中doGet方法中设置contentype=GBK,这样在处理请求前编码格式就被处理了。例:
public class MyHttpServlet extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=GBK"); // Do Other Things } }
发表评论
-
div & js 模拟select组件
2011-08-26 11:15 1418<!DOCTYPE html PUBLIC " ... -
常用JavaScripts函数
2011-08-15 09:06 1481/** * 判断客户端浏览器 ... -
文本框输入限制
2011-07-15 15:33 1022【转自】http://www.blogjava.net/sy1 ... -
界面输入输入法全角半角的处理
2011-02-26 11:46 1732全角字符一半用于排版等,在编程中通常是禁止使用的。而用户错误的 ... -
货币符号转换-JS
2011-02-17 14:34 3994/* * 货币符号转汉语,如CNY 人民币 */ f ... -
JEE中上下文地址的获取path && basePath
2010-10-22 17:00 1065String path = request.getContex ... -
SSH2示例
2010-09-16 16:44 1292两个示例,见附件。 DROP TABLE IF EXISTS ... -
JBoss JBPM4请假流程示例
2010-09-16 16:11 1306见附件 -
Struts权限过滤器
2010-09-16 16:09 830见附件 -
hibernate官方入门教程 (转载)
2010-09-03 15:04 1232hibernate官方入门教程第 ... -
MySQL的中文UTF8乱码问题
2010-09-01 16:34 1509乱码的发生防不胜防:插件开发配置文件有时候会产生乱码,java ... -
使用CXF: Java 2 WSDL
2010-04-08 09:00 2104java编程:纯java代码进行java类向wsdl文件的转换 ... -
调用CXF工具 生成 WSDL
2010-03-18 16:12 18658在做WebService的时候,生 ... -
HQL 语言基本用法
2008-01-10 21:33 12331.实体查询 String hql = " fro ... -
在Struts中使用Validator验证框架详解
2008-01-03 20:54 2071Validatro框架以成为Jakarta ... -
Struts验证——Validator验证框架
2008-01-03 20:44 2013Validator验证框架: V ...
相关推荐
在Java Web开发中,字符编码过滤器(Character Encoding Filter)起着至关重要的作用。它确保了请求和响应数据在处理过程中使用一致的字符编码,从而避免乱码问题。本篇文章将详细探讨Java过滤器(Filter)的概念,...
为了解决这个问题,我们可以利用Java的Servlet规范中的Filter机制,创建一个编码过滤器(EncodingFilter)。Filter接口是Servlet API的一部分,它允许我们在请求到达目标Servlet之前或之后进行拦截处理,比如在这里...
### 解决字符编码的过滤器知识点详解 #### 一、字符编码基础概念 在深入了解如何通过Struts2框架中的Servlet过滤器解决字符编码问题之前,我们先简要回顾一下字符编码的基本概念。字符编码是将计算机内部二进制...
在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免乱码问题。 5. **Struts2详解**: Struts2框架的核心包括Action、Interceptor(拦截器)、Result和Value Stack等组件。Action...
在JSP中,当请求参数包含中文字符时,如果不设定字符编码,服务器可能会默认使用ISO-8859-1等不支持中文的编码,从而导致乱码。为了解决这个问题,我们可以在每个JSP页面中使用`request.setCharacterEncoding("GBK")...
JSP默认使用"ISO-8859-1"编码,如果页面包含中文内容,未正确设置编码会导致乱码。解决方法是在每个JSP文件的顶部添加`<%@ page pageEncoding="UTF-8" %>`指令,确保页面以UTF-8编码处理中文内容。 其次,**传递...
中文过滤器通过统一编码格式和转换过程,确保中文数据在服务器和客户端之间正确无误地传输。 首先,让我们了解过滤器(Filter)在JavaWeb中的概念。在Servlet规范中,过滤器是实现动态网页请求处理链路中的一个组件...
在Java编程语言中,中文字符的正确显示是一个常见的挑战,特别是在处理...通过学习和分析这个实例,开发者可以更好地理解和应用Java中的编码过滤器,从而在实际项目中解决中文乱码问题,提高代码的可维护性和用户体验。
在IT行业中,中文字符过滤器(EncodingFilter)是解决Web应用程序中中文乱码问题的关键工具。乱码问题通常发生在数据的编码与解码过程中,尤其是当客户端与服务器之间通过HTTP传输包含中文字符的数据时。本篇文章将...
1. **过滤器概念**: - 过滤器是Java Servlet规范中定义的一种组件,它实现了javax.servlet.Filter接口,可以在请求处理前、处理后或响应返回前执行一些操作。 - 过滤器链是多个过滤器按顺序调用的机制,每个过滤...
总结,SSH框架下的中文乱码问题主要通过自定义过滤器解决,设置合适的请求和响应的字符编码。同时,对于不同的数据提交方式,如表单和JS,需要采取相应的解决方案。在实际开发中,确保整个数据传输过程中的字符编码...
### jsp过滤器——解决中文乱码问题 #### 背景介绍 在Web应用开发过程中,特别是使用Java Server Pages (JSP)进行中文字符处理时,经常遇到的一个问题是中文字符显示为乱码。这主要是因为客户端与服务器端之间存在...
为了从根本上解决中文乱码问题,我们可以创建一个简单的字符编码过滤器,该过滤器会在每次请求处理之前被调用,用于设置请求的字符编码。下面是一个具体的实现例子: 1. **编写过滤器类**: ```java package ...
本文将详细讲解如何利用过滤器来解决中文乱码问题。 1. **理解中文乱码** 中文乱码通常是因为字符编码不一致导致的。在计算机系统中,字符被编码成二进制表示,不同的编码标准(如GBK、UTF-8等)对同一字符有不同...
在本主题中,"SSH 中文过滤器"可能指的是在SSH连接或传输过程中处理中文字符的特定过滤机制,这通常涉及到字符编码、乱码问题的解决以及跨平台通信时的兼容性问题。 在开发或管理涉及多语言环境的系统时,特别是在...
在HTTP协议中,默认的编码格式是ISO-8859-1,而中文字符通常需要UTF-8或GBK等编码来正确显示。当客户端和服务器之间的编码不一致时,就可能导致乱码。 要使用过滤器解决中文乱码,我们需要创建一个实现了javax....
通过过滤器,我们可以实现诸如字符编码转换、权限验证、日志记录等功能,而本项目中的过滤器就是用于处理中文乱码问题的。 中文乱码的产生通常与字符编码有关。在不同的系统、不同的编程语言中,字符编码可能会有所...
中文乱码过滤器是一种专门用于解决这种问题的工具,它能够有效地处理GET和POST请求中的中文乱码问题,确保数据的正确显示和传输。本文将深入探讨中文乱码的产生原因,介绍中文乱码过滤器的工作原理,以及如何在实际...
为了确保客户端提交的数据能够被正确解析并显示,通常需要在Servlet过滤器中对请求和响应对象设置统一的字符编码。以下是一个具体的示例代码: ```java package demo.common; import java.io.IOException; import ...
Java Servlet过滤器是Java Web应用程序中的重要组件,它在请求被Servlet处理之前和响应返回给客户端之后进行拦截,可以用于实现各种功能,如字符编码转换、URL重写、权限控制等。本篇将深入讲解Java Servlet过滤器的...