- 浏览: 309437 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
fanlei77:
很有用,谢谢
git branch -
han1051:
123123
Spring框架下PropertyPlaceholderConfigurer类 -
wangbing9577:
言简意赅。
代理模式 适配器模式 与 外观模式 区别 比较 特点 -
azheng270:
用户和权限为什么会有直接连线
通用权限管理系统设计篇(一) -
cectsky:
nice,i know ,thank you ~
Spring框架下PropertyPlaceholderConfigurer类
- <filter>
- <filter-name>encoding</filter-name>
- <filter-class>
- filter.FilterEncoding
- </filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>gbk</param-value>
- </init-param>
- </filter>
<filter> <filter-name>encoding</filter-name> <filter-class> filter.FilterEncoding </filter-class> <init-param> <param-name>encoding</param-name> <param-value>gbk</param-value> </init-param> </filter>
- package 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 FilterEncoding implements Filter
- {
- protected String encoding; // 接收字符编码
- protected boolean ignore; // 是否忽略大小写
- protected FilterConfig filterConfig; // 初始化配置
- public void init(FilterConfig filterConfig) throws ServletException
- {
- // 从web.xml文件中读取encoding的值
- encoding = filterConfig.getInitParameter("encoding");
- // 从web.xml文件中读取ignore的值
- String value = filterConfig.getInitParameter("ignore");
- // 以下三种情况均为忽略大小写
- if(value == null)
- {
- ignore = true;
- }
- else if(value.equalsIgnoreCase("yes"))
- {
- ignore = true;
- }
- else if(value.equalsIgnoreCase("true"))
- {
- ignore = true;
- }
- }
- // doFilter方法
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
- {
- if(ignore || request.getCharacterEncoding() == null)
- {
- // 如果为空先从web.xml中得到
- String encoding = selectEncoding(request);
- if(encoding != null)
- {
- // 设置字符集编码
- request.setCharacterEncoding(encoding);
- }
- }
- // 继续执行
- chain.doFilter(request, response);
- }
- // 得到字符编码
- private String selectEncoding(ServletRequest request)
- {
- return encoding;
- }
- public void destroy()
- {
- }
- }
package 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 FilterEncoding implements Filter { protected String encoding; // 接收字符编码 protected boolean ignore; // 是否忽略大小写 protected FilterConfig filterConfig; // 初始化配置 public void init(FilterConfig filterConfig) throws ServletException { // 从web.xml文件中读取encoding的值 encoding = filterConfig.getInitParameter("encoding"); // 从web.xml文件中读取ignore的值 String value = filterConfig.getInitParameter("ignore"); // 以下三种情况均为忽略大小写 if(value == null) { ignore = true; } else if(value.equalsIgnoreCase("yes")) { ignore = true; } else if(value.equalsIgnoreCase("true")) { ignore = true; } } // doFilter方法 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(ignore || request.getCharacterEncoding() == null) { // 如果为空先从web.xml中得到 String encoding = selectEncoding(request); if(encoding != null) { // 设置字符集编码 request.setCharacterEncoding(encoding); } } // 继续执行 chain.doFilter(request, response); } // 得到字符编码 private String selectEncoding(ServletRequest request) { return encoding; } public void destroy() { } }
如果是url的get提交参数带中文的
可以改下面这个文件,加入一个URIEncoding="GBK"
X:\Tomcat 5.5\conf\Server.xml
- <Connector
- port="8080"
- redirectPort="8443"
- minSpareThreads="25"
- connectionTimeout="30"
- maxThreads="150"
- maxSpareThreads="75"
- URIEncoding="GBK">
<Connector port="8080" redirectPort="8443" minSpareThreads="25" connectionTimeout="30" maxThreads="150" maxSpareThreads="75" URIEncoding="GBK">
jsp头文件
- <%@ page contentType="text/html;charset=gbk"%> //此处的charset的值要和web.xml里的 <param-value></param-value>值一样
<%@ page contentType="text/html;charset=gbk"%> //此处的charset的值要和web.xml里的 <param-value></param-value>值一样
单个类的乱码可以这样来解决:tempStr = new String(str.getBytes("iso-8859-1"),"gb2312");
发表评论
-
性能监控与性能问题定位之:Java篇
2012-04-09 15:50 1109http://hi.baidu.com/higkoo/ ... -
BeanUtils.copyProperties 日期转字符 日期转Long
2012-03-15 11:05 2416建立自己的日期转换类 import org.apache.c ... -
java 正则
2011-11-18 13:27 792http://edu.yesky.com/edupxpt/18 ... -
apache common 工具
2011-11-03 16:24 1276common-lang (2.1) ... -
git branch
2011-10-26 16:04 1170http://f2e.us/wiki/git-branch ... -
TortoiseSVN svn:external 设置外部svn目录的属性
2011-02-17 14:57 6033项目开发时,各个人员之间都会使用公共项目中的文件。可 ... -
synergy quicksynergy 共享ubuntu 和 windows 7
2011-01-21 19:27 26641. 在windows 7 下 安装 synergy 2. ... -
浅析VO、DTO、DO、PO的概念、区别和用处
2010-10-18 16:03 1227概念: VO ( View Obje ... -
详细解析Java中抽象类和接口的区别
2010-10-12 15:25 936抽象类和接口 抽象类仅提供一个类的部分实现 ... -
文件操作
2010-09-25 20:56 988File File 类 只操作文件,不对文件中的内容进行操作 ... -
PO/VO/DAO/BO/POJO是什么(JAVA几种对象的解释)
2010-08-31 00:17 1449java的几种对象(PO,VO,DAO,B ... -
svn 中tag branch trunk 的用法
2010-05-19 15:54 2047在SVN中Branch/tag在一个功能选项中,在使用中也往往 ... -
interview
2010-05-04 09:44 0以下题有些经过测试,修改之后,大多能运行。 1.现在输入 ... -
Sting字符串交集并集差集
2010-04-29 13:31 0package com.thomas.test; imp ... -
jsp的url中文参数解决办法
2009-06-23 18:38 10251.页面头部添加 <%@ page contentTy ... -
getAttribute和getParameter的区别
2008-07-18 10:00 1179getAttribute和getParameter的区别 JS ... -
JSP编程进度条设计
2008-07-14 10:42 1037许多Web应用、企业应用涉及到长时间的操作,例如复杂的数据库 ... -
[zt]JDBC DAO设计
2008-07-08 13:48 1380Connection的含义 Connection表示了一 ... -
Linux下内存释放问题相关知识
2008-07-03 15:20 1382细心的朋友会注意到,当 ... -
hashtable和hashmap的区别
2008-06-12 10:48 939HashTable的应用非常广泛,HashMap是新框架中用来 ...
相关推荐
综上所述,解决Struts2中文乱码问题的方法主要包括设置JSP页面编码、配置Struts2国际化编码、修改web.xml配置、使用POST请求方式以及自定义过滤器等。开发者可以根据项目的具体情况选择合适的方法来解决中文乱码问题...
总结来说,解决Struts下的汉字乱码问题,需要从页面、过滤器、服务器配置和Struts核心Servlet等多方面进行设置,确保在整个请求生命周期中,中文字符始终以正确的编码进行处理。这不仅涉及了前端的展示,还涉及到...
`FilterDome`是一个具体的Filter实现,通常用来解决字符编码问题,即乱码过滤器。在处理中文或其他多语言字符时,乱码问题时常出现,`FilterDome`就是为了解决这个问题而设计的。下面将详细介绍`FilterDome`的工作...
- 为了更灵活地控制编码,可以编写自定义过滤器来处理特定场景下的乱码问题。 - 示例代码: ```java public class CustomEncodingFilter implements Filter { private String encoding; @Override public ...
通过在JSP页面头部设置正确的编码格式、在接收请求参数时进行编码转换以及使用过滤器统一设置请求的编码格式等方式,可以有效地解决这一问题。开发者应根据具体情况选择合适的解决方案,以提高系统的稳定性和用户...
总结,"超强过滤器"是解决JSP-Servlet之间中文参数GET-POST传递问题的有效手段,通过统一设定请求的字符编码,确保在整个Web应用中中文数据能够正确无误地传输和处理。对于大型项目,这样的全局解决方案可以大大提升...
在Struts2框架中,乱码问题主要出现在请求参数的处理上,特别是在GET或POST请求中。当客户端发送的请求参数编码与服务器端解析请求参数所使用的编码不一致时,就会产生乱码。 **解决方法**: 1. **配置过滤器**:...
对于POST请求,可以通过编写过滤器(Filter)来解决这个问题。过滤器在请求被处理前运行,可以更改请求参数的编码方式。以下是一个简单的过滤器实现: ```java import java.io.IOException; import javax.servlet....
1. 入口不同:SpringMVC的入口是DispatcherServlet(前端控制器),而Struts2的入口是Filter(过滤器)。 2. 开发方式:SpringMVC基于方法开发,参数通过方法形参传递;Struts2基于类开发,参数通过类的属性传递。 3...
1. **POST请求**:在`web.xml`中配置`CharacterEncodingFilter`过滤器来解决POST请求中的中文乱码问题。示例配置如下: ```xml <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org...
1. 入口不同:SpringMVC 的入口是前端控制器 DispatcherServlet,而 Struts2 的入口是 Filter 过滤器。 2. 开发方式:SpringMVC 基于方法开发,适合单例模式;Struts2 基于类开发,适合多例模式。 3. 数据存取:...
6. **过滤器控制乱码**:为页面添加过滤器以控制乱码,可以在过滤器中设置字符编码,或者在Tomcat的`server.xml`中全局更改字符集。 7. **Java连接SQL Server**:需要引入相应的JDBC驱动jar包,如mssqlserver.jar,...
##### 3.4 如何解决POST请求中文乱码问题,GET的又如何处理呢? - **POST请求**:在web.xml中配置过滤器CharacterEncodingFilter来设置字符编码。 - **GET请求**:同样可以通过配置过滤器解决,也可以通过修改Tomcat...
对于表单提交,可以在Servlet中设置字符编码,或者使用过滤器统一处理请求和响应的编码问题。 以上这些问题涵盖了软件开发中的数据库交互、测试方法、前端样式、Web应用部署、框架配置等多个方面,是软件专业答辩中...
24. **防止乱码**:添加过滤器(Filter)来处理字符编码问题,需要在Filter中设定合适的字符编码,例如设置HttpServletRequest和HttpServletResponse的编码为UTF-8。 以上内容涵盖了答辩中可能出现的多种问题,详细...
1. **Struts2**:理解Action的编写,知道如何接受请求参数,了解配置文件的设置,理解Struts2与SpringMVC的差异,了解拦截器与过滤器的区别。 2. **Hibernate**:理解ORM思想,知道实体对象的状态转换,熟练使用HQL...