1. 在struts2里面,最好将所有字符都设成utf-8。
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page pageEncoding="UTF-8" %>1.1 在jsp页面设定字符编码。这边有必有说明的是如果是jsp+java bean+servlet的方案,中文乱码很好解决,统一设成gb2312就可以了。 1.2 使用struts框架字符集不能设成gb2312,要改成utf-8。
2. 在struts.properties 添加:
struts.devMode=false struts.enable.DynamicMethodInvocation=true struts.i18n.reload=true struts.ui.theme=simple
struts.locale=zh_CN struts.i18n.encoding=UTF-8
struts.serve.static.browserCache=false struts.url.includeParams=none
其中locale、encoding就是字符集的设定了。
3. 在web.xml加个filter
<!-- zh-cn encoding -->
<filter>
<filter-name>struts-cleanup</filter-name> <filterclass>org.apache.struts2.dispatcher.ActionContextCleanUp </filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
跟上述方法,类似还有在action中设定字符编符.
HttpServletResponse response = null;
response = ServletActionContext.getResponse();
request .setCharacterEncoding("utf-8"); .
response.setContentType("text/html;charset=utf-8");
通过上述方法,基本就可以搞定中文乱码的问题了。当然,也有例外(如web server的版本\数据库的版本等等)。象在我的一个项目碰到一个中文乱码,tomcate5.5是会乱码的,而在tomcate6中就不会。这边就涉及到tomcate connector字符的设置了。
<Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />
--------------------------------------------------------------------
在使用struts2时,有时 仍是遇到一种乱码。可能与struts2的web.xml配置顺序有关。
在web.xml中EncodingFilter的位置应该在Struts2的FilterDispatcher之前,因为要先调整字符集,然后进入Action。
按照Struts2的API,filter的顺序是 struts-cleanup filter SiteMesh filter FilterDispatcher
--------------------------------------------------------------------
这个方法是下下策了,只有在前面的方法都无效时才使用。
在action中直接使用request.getParameter()时;还是出现乱码。原因分析如下:
1、getParameter()是有带字符参数的。例:
String s = (String)request.getParameter("txt").getBytes("iso-8859-1");
2、String也可以带有字符参数。
String(byte[] bytes, String charsetName) 构造一个新的 String,方法是使用指定的字符集解码指定的字节数组。
例:String s = new String("中文","utf-8");
3、综合上述两点,编写一个类来完成此项任务
public class ConvertCharacter{
public String Convert(String s){
String result;
byte[] temp ;
try{
temp = s.getBytes("iso-8859-1");
result = new String(temp,"utf-8");
}
return result;
}
}
request.getParameter乱码的问题
方法一:
通过设置tomcat的配置文件server.xml
Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" uRIEncoding="gbk"/>
方法二:
1: String id=new String(request.getParameter("id").getBytes("ISO8859-1"),"UTF-8");
分享到:
相关推荐
Java Web开发中遇到的中文乱码问题,主要是由不同组件间的编码不一致引起的。为了解决这些问题,开发者需要在各个关键环节确保使用相同的字符集,如在JSP页面、表单处理、数据库连接以及参数传递中明确指定字符编码...
### 安全开发之Java Web安全编码 #### 一、Web应用安全威胁 在现代互联网环境中,Web应用程序作为企业对外展示的重要窗口,面临着各种各样的安全威胁。这些威胁不仅包括了传统的技术层面的问题,还涉及到了更为...
java-web 编码问题详解,内容很详细的解决各种编码问题、
9. **JPEG和PNG编码解码**:了解如何使用Java的`javax.imageio`包来读写JPEG和PNG等常见图像格式,这是处理Web图像时的基本技能。 10. **Web性能优化**:在Web环境中,图像的大小和格式直接影响页面加载速度。因此...
Java 安全编码的主要目标是保护 Web 应用程序免受各种攻击和漏洞的影响。下面是 Java 安全编码的详细知识点: 1. SQL 注入攻击 SQL 注入攻击是一种常见的 Web 应用程序漏洞,攻击者可以通过输入恶意的 SQL 代码来...
9. **charset**: 这个目录可能涉及到字符编码问题,如UTF-8和GBK,以及在Java Web开发中如何处理字符编码转换。 通过学习这些源代码,开发者不仅可以掌握Java Web的基础知识,还能了解到实际项目开发中的最佳实践。...
本文旨在详细探讨Java中的中文编码问题,包括常见的编码格式、编码问题的根源以及如何在Java Web应用程序中妥善处理这些问题。 #### 二、Java中的编码问题概述 ##### 2.1 几种常见的编码格式 在讨论Java中的编码...
#### 三、Java Web编码结构 在Java Web开发中,我们需要从以下几个层面进行编码: 1. **前端界面设计**:使用HTML、CSS和JavaScript等技术创建用户界面。 2. **后端业务逻辑处理**:利用Java编写服务器端程序,...
由于Java是一种跨平台的语言,因此在不同的操作系统之间存在编码格式的差异,这导致了在处理文本数据时经常会遇到字符显示错误的问题。本文旨在深入探讨Java中的编码格式,帮助开发者更好地理解和解决在开发过程中...
### Java Web 开发中解决乱码问题的全面指南 #### 一、乱码问题概述 在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在...
5. **过滤器(Filter)**:过滤器在Java Web中用于拦截请求和响应,实现预处理或后处理功能,如登录检查、字符编码转换、日志记录等。开发者可以通过实现`javax.servlet.Filter`接口并配置在`web.xml`中来创建过滤器...
《Java Web编程宝典-十年典藏版》是Java Web开发领域的一本经典教程,它深入浅出地讲解了如何使用...通过这些实例,你可以逐步掌握从设计、编码到部署的整个Web应用开发流程,从而在Java Web开发领域建立起坚实的基础。
要成为一名优秀的Java Web开发工程师,不仅要理解这些基础概念,还要深入研究这些技术背后的原理和实现细节。此外,实际开发中还需要掌握如HTML、CSS、JavaScript等前端技术,以及后端Java Web开发的相关技术,如...
Java Web学习课件主要涵盖了基于J2EE平台的Web应用开发技术,这是一套非常实用的学习资源,适合初学者和有经验的开发者进行复习和提升。J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个企业级...
3. 高级篇:此部分可能涉及MVC设计模式,讲解如何利用Java Web组件进行更复杂的业务逻辑处理,例如过滤器(Filter)和监听器(Listener)的使用,以及JSP自定义标签的开发。 4. Struts框架篇:Struts是经典的MVC...
乱码问题是 Java Web 开发中一个常见的问题,通常是由于字符编码的错误所致。在 Java 中,字符编码有多种,例如 UTF-8、GBK、ISO-8859-1 等。如果不正确地设置字符编码,可能会出现乱码问题。 解决方法: * 确认...
6. **过滤器(Filter)**: 过滤器在Java Web应用中用于拦截请求和响应,实现预处理或后处理功能,比如登录验证、字符编码转换等。学习过滤器涉及理解Filter接口和过滤链。 7. **监听器(Listener)**: 监听器是用来...
5. **过滤器(Filter)**:过滤器在Java Web中用于拦截请求和响应,实现预处理或后处理功能,如登录验证、字符编码转换等。读者可以学习如何配置和实现自定义过滤器。 6. **监听器(Listener)**:监听器是用于监听...
根据提供的文件信息,本文将详细解析与Java Web打印、Java PDF打印相关的技术点及实现方法。主要内容包括: 1. Java Web打印的基本概念。 2. 使用Struts框架进行Web页面开发的相关知识点。 3. Java PDF打印的技术...
通过这个项目,开发者可以全面了解和实践Java Web开发流程,从需求分析、数据库设计、编码实现到测试上线,锻炼实际问题解决能力。同时,这也是一个良好的起点,为今后的Web开发生涯打下坚实的基础。