- 浏览: 352515 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (160)
- webservice (2)
- 数据库开发 (9)
- LINUX (6)
- 团队协作 (5)
- 前端技术 (4)
- J2EE (31)
- web服务器 (9)
- 经验常识 (12)
- 开发工具 (17)
- 项目管理 (7)
- 重构与设计模式 (8)
- 安全技术 (1)
- 并发编程 (1)
- 移动互联网 (2)
- 编码风格 (1)
- 领域建模 (1)
- 随想杂记 (12)
- 翻译 (2)
- 问题排查 (2)
- 数据挖掘 (4)
- 软件架构 (1)
- java语言基础知识 (13)
- 文件读写 (1)
- mac研发笔记 (1)
- 网络问题 (1)
- python学习 (0)
- Java8新特性 (1)
- soft kes collections (1)
最新评论
-
cremains:
...
java8新特性学习笔记 -
bingyingao:
guooo 写道很好的总结,不知能否转载?可以,多谢关注
又四年了,再看如何快速融入一个新团队 -
guooo:
很好的总结,不知能否转载?
又四年了,再看如何快速融入一个新团队 -
omeweb:
又过了好几年了,有啥新感悟没有?
两年已过去,再看该如何快速融入新团队 -
kely39:
感谢楼主,问题已解决
包冲突问题的解决方法
j2ee方面的开发总会遇到各种各样的乱码问题,总想抽空整理一下,一直没时间。
情景一:
如果采用spring框架,之中出现乱码。则可以通过下面这种在web.xml中配置的方式。
CharacterEncodingFilter中只有两句代码,是给characterEncoding设置编码格式:
request.setCharacterEncoding(this.encoding);
if (this.forceEncoding && responseSetCharacterEncodingAvailable) {
response.setCharacterEncoding(this.encoding);
}
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样的方式就要求这个filter放在所有其它filter之前进行。
filter的顺序很关键
场景二:
try {
String content=URLEncoder.encode("txt=您的朋友caituopost4发送为您推荐以上资讯","utf-8");
String pushUrl="http://www.test.com:8080/tgweb/push.jsp?tophone=1555886543&myphone=10658698&txt="+content+"&url=http://localhost:8080/wsap/tentDetail.action?modelid=274^tentId=1572";
System.out.print("转码后:"+pushUrl);
URL myUrl;
myUrl = new URL(pushUrl);
HttpURLConnection conn = (HttpURLConnection)myUrl.openConnection();
conn.setDoOutput(true);
conn.connect();
conn.getInputStream();
System.out.print("无错了!");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
场景三:get传递中文
避免乱码的方式:
页面上:
<a href="<%=basePath %>/EncodingServlet?address=<%=URLEncoder.encode("中国人","UTF-8") %>">是否乱码2</a>
servlet里面:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String address=new String(request.getParameter("address").getBytes("ISO-8859-1"),"utf-8");
System.out.println("address:"+address);
}
奇怪的是,如果页面上用下列方式,则无论如何都是乱码了:
<a href="javascript:location.href='<%=basePath %>/EncodingFilter?address=<%=URLEncoder.encode("中国人","UTF-8") %>'">是否乱码</a>
场景四:下载文件名乱码
/**
* 将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.
* @param 原文件名
* @return 重新编码后的文件名
*/
public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = Character.toString(c).getBytes("utf-8");
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0)
k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
场景五:tomcat编码格式修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
场景五:ajax调用时传递中文需要解码两次。
String q="";
try {
q = URLDecoder.decode(URLDecoder.decode(paramParser.getString("q"), "utf-8"), "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
(未完待续)
情景一:
如果采用spring框架,之中出现乱码。则可以通过下面这种在web.xml中配置的方式。
CharacterEncodingFilter中只有两句代码,是给characterEncoding设置编码格式:
request.setCharacterEncoding(this.encoding);
if (this.forceEncoding && responseSetCharacterEncodingAvailable) {
response.setCharacterEncoding(this.encoding);
}
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样的方式就要求这个filter放在所有其它filter之前进行。
filter的顺序很关键
场景二:
try {
String content=URLEncoder.encode("txt=您的朋友caituopost4发送为您推荐以上资讯","utf-8");
String pushUrl="http://www.test.com:8080/tgweb/push.jsp?tophone=1555886543&myphone=10658698&txt="+content+"&url=http://localhost:8080/wsap/tentDetail.action?modelid=274^tentId=1572";
System.out.print("转码后:"+pushUrl);
URL myUrl;
myUrl = new URL(pushUrl);
HttpURLConnection conn = (HttpURLConnection)myUrl.openConnection();
conn.setDoOutput(true);
conn.connect();
conn.getInputStream();
System.out.print("无错了!");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
场景三:get传递中文
避免乱码的方式:
页面上:
<a href="<%=basePath %>/EncodingServlet?address=<%=URLEncoder.encode("中国人","UTF-8") %>">是否乱码2</a>
servlet里面:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String address=new String(request.getParameter("address").getBytes("ISO-8859-1"),"utf-8");
System.out.println("address:"+address);
}
奇怪的是,如果页面上用下列方式,则无论如何都是乱码了:
<a href="javascript:location.href='<%=basePath %>/EncodingFilter?address=<%=URLEncoder.encode("中国人","UTF-8") %>'">是否乱码</a>
场景四:下载文件名乱码
/**
* 将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.
* @param 原文件名
* @return 重新编码后的文件名
*/
public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = Character.toString(c).getBytes("utf-8");
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0)
k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
场景五:tomcat编码格式修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
场景五:ajax调用时传递中文需要解码两次。
String q="";
try {
q = URLDecoder.decode(URLDecoder.decode(paramParser.getString("q"), "utf-8"), "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
(未完待续)
发表评论
-
log4j关键点
2013-09-25 19:43 1062日志级别 级别顺序(低到高): DEBUG < INFO ... -
java集合排序
2013-09-24 19:18 1119java对象集合排序在开发中使用非常广泛,需要重点理解,而它实 ... -
关于java.lang.OutOfMemoryError的参数配置误区
2013-09-10 15:10 1126这两天在本机用eclipse的jetty插件跑项目,老是抛出一 ... -
spring这样的来配置一些常量很方便
2013-09-03 09:48 2497<util:list id="haidilao ... -
快速查找线程死锁(展苍)
2012-12-23 13:25 0Thread dump Thread dump是比较容易查找 ... -
javap查看虚拟机为你做了什么
2012-12-02 15:38 559public class Test { publi ... -
用正则表达式扣出字符串中指定的多处内容
2011-12-26 15:29 1452截取打印出所有<record></recor ... -
java反射机制学习
2011-11-19 13:01 1038反射基本概念: 在java ... -
java匿名内部类使用场景列举
2011-11-18 10:57 2613java内部类是怎么一回事?匿名内部类何时会用到,之前一直很模 ... -
使用UUID生成32位ID
2011-11-14 11:11 21326UUID(Universally Unique Identif ... -
java数据类型介绍
2011-11-09 14:34 957java数据类型介绍 简单类型大小范围/精度 ... -
Exception点滴
2011-11-08 14:24 946java.lang.reflect.UndeclaredThr ... -
将set集合转为list并对对象进行排序
2011-11-06 15:09 7743之前用hibernate的时候,遇到一对多的表结构。比如班级( ... -
src地址为空导致两次进入到action请求地址
2011-10-29 13:05 1530今天用struts开发一个页面,奇怪的是我点了一次提交,达到目 ... -
struts标签与ognl表达式用法点滴
2011-10-27 18:43 1405struts标签的使用中,会涉及一些比较细的点儿,汇总一下,以 ... -
struts2第四回:工作流程解析
2011-10-14 15:18 876这两天没什么任务,就想研究一下struts2的源码,看了半天, ... -
struts2第三回:自定以拦截器
2011-10-13 19:14 1097实现一个拦截器并调用。 ============下面是Logi ... -
struts2第二回:防止重复提交
2011-10-13 18:51 2267基本原理:用户访问做了重复提交的页面,服务器会生成一个令牌,这 ... -
include与jsp:include与s:action与s:include与iframe用法汇总
2011-10-13 13:47 207161.<%@ include file="../ ... -
struts2第一回:validate框架使用
2011-10-12 16:42 5037struts2总结 ...
相关推荐
在JavaWeb开发中,中文乱码问题是一个普遍且棘手的问题,主要出现在数据的输入、处理和输出过程中。中文字符由于其特殊的编码方式(如GBK、UTF-8等),在不同编码格式之间转换时容易出现乱码。为了解决这个问题,...
JavaWeb开发技术-解决中文输出乱码问题 JavaWeb开发技术是指使用Java语言开发Web应用程序的技术,涵盖了从基本的Servlet和JSP到高级的框架和架构模式的各种技术。其中,解决中文输出乱码问题是JavaWeb开发中一个...
总结来说,解决JavaWeb开发中的中文乱码问题,关键在于正确地设置字符编码。使用`HttpServletResponse`的`setCharacterEncoding`和`setContentType`方法可以确保数据在传输过程中的编码与接收端的解码保持一致,从而...
总的来说,"javaweb开发必备源码整理"是一个宝贵的教育资源,可以帮助JavaWeb开发者加深对技术的理解,提高编程技能,并为解决实际问题提供参考。通过仔细研究和实践,开发者可以更好地掌握JavaWeb开发的核心技术,...
解决JavaWeb开发中Jsp存储读取MySQL数据中文乱码的问题.pdf
在 JavaWeb 技术开发中,中文乱码问题是由于 Java 系统的输入、输出和操作系统的默认编码字符集不一致导致的。 Java 系统内部使用 Unicode 来表示字符,但是在实际应用中,由于应用程序的运行环境不同,和各个本地...
### 解决Javaweb乱码问题完整方案 在Javaweb开发过程中,字符编码问题经常困扰着开发者,特别是中文等多字节字符的处理。本文将详细讲解如何全面解决Javaweb中的乱码问题,确保网页内容正确显示。 #### 一、配置...
### JavaWeb开发中的中文乱码问题分析及解决方案 #### 摘要 在JavaWeb开发过程中,中文乱码问题是常见的技术挑战之一。该问题源于不同组件间的编码方式不一致,尤其是在涉及用户输入、数据库交互以及页面展示等环节...
JavaWeb 乱码问题终极解决方案 下面是从给定的文件中生成的相关知识点: 一、确认乱码发生的位置 在解决 JavaWeb 乱码问题时,首先要确认乱码的地方。...在实际开发中,需要注意编码问题,避免出现乱码问题。
JavaWeb中字节乱码filter解决办法,其中包括tomcat各个版本进行字符设置.
Tomcat与JavaWeb开发技术详解书本的源代码。
JavaWeb开发是构建基于互联网应用程序的关键技术,它涵盖了服务器端编程、数据库交互、网页动态内容生成等多个方面。这个"JavaWeb开发典型模块大全完整源码"提供了全面的学习资源,可以帮助开发者深入理解JavaWeb的...
JavaWeb开发实战源码是学习和理解Web应用程序开发的一个重要资源。这个压缩包可能包含了从基础到高级的各种JavaWeb项目实例,涵盖了从搭建环境、创建动态网页、处理HTTP请求到数据库交互等一系列步骤。通过深入研究...
在IT行业中,JavaWeb开发是...学习和理解这些技术,将有助于提升JavaWeb开发的专业技能和解决问题的能力。通过深入阅读和实践,开发者可以逐步构建起完整的JavaWeb开发知识体系,为开发高质量的Web应用打下坚实基础。
在JavaWeb开发中,权限问题是一个至关重要的环节,它涉及到系统的安全性、用户访问控制以及数据保护。本篇文章将深入探讨JavaWeb开发中的权限管理,帮助开发者理解和实施有效的权限设置。 一、角色与权限模型 在...
JavaWeb开发技术是现代互联网应用开发的重要组成部分,汪大乐所著的《Javaweb开发技术详解》一书深入浅出地介绍了这一领域的核心概念和技术。JavaWeb开发主要涉及Servlet、JSP、JSTL、过滤器、监听器、MVC设计模式...
14. **Web安全**:在开发JavaWeb应用时,还需考虑安全性问题,如防止SQL注入、XSS攻击、CSRF攻击等。 通过学习《JavaWeb开发实战经典(基础篇)》的源码,你可以逐步掌握这些关键知识点,并通过实际操作加深理解,...
解决JavaWeb开发中Jsp存储读取MySQL数据中文乱码的问题[整理].pdf
《Tomcat与JavaWeb开发技术详解》一书的随书源码包含了大量的示例和练习,旨在帮助读者深入理解如何在实际开发环境中运用Tomcat服务器和JavaWeb技术。以下是对这些关键技术点的详细阐述: **Tomcat服务器** Tomcat...
### JavaWeb乱码问题分析与解决 #### 一、引言 在JavaWeb开发中,乱码问题是开发者经常遇到的问题之一。它不仅会影响用户体验,还会对数据的正确性造成潜在威胁。本文将针对请求乱码及响应乱码两种情况进行深入剖析...