继续web乱码之路:
上次说到的乱码问题,有个地方说到比较概况,就是文件上传的处理。
通过form上传的方式我们可以知道:
multipart/form-data |
不对字符编码。
在使用包含文件上传控件的表单时,必须使用该值。
|
实际情况是什么样子呢 :
浏览器监视下看看
-
-
-
- Request Headers
-
-
-
-
-
-
-
-
-
-
-
-
-
- Query String Parameters
-
-
- Request Payload
-
好的大家着重看看红色字体部分,大家会发现浏览器根本就没有提交编码格式给服务器,包括默认编码格式。
OK,这个时候我们可以参考我前两篇文章所说:提交的数据位当前页面的编码格式(<meta http-equiv="Content-Type" content="text/html; charset=GBK"> )。
那么服务端接收数据时如何操作呢?大家都知道我们文件上传都采用上传的组件工具例如(commons-fileupload),获取上传的数据信息,而并非采用默认的request.getPara....();这种方式获取数据(为什么是这样,大家自己研究下哈)。所以,服务器端(例如tomcat)的默认解码根本就么有用到。
好的,到了这里大家估计也看出来了,解码过程毫无疑问交给了文件上传的组件来处理了。好的,那么文件上传组件如何解码呢,这个与组件的处理有关,这里说下 commons-fileupload; 大家看下代码的红色部分,如果大家设置了这些编码格式,那么上传的数据会被采用utf-8解析,否则 commons-fileupload默认采用 iso8859-1解析。
public List<FileItem> getFileList(HttpServletRequest request) throws Exception{
List<FileItem> files=new ArrayList<FileItem>();
DiskFileUpload fu = new DiskFileUpload ();
fu.setHeaderEncoding("UTF-8");//关键
fu.setSizeMax(200000000);
List fileItems = fu.parseRequest(request);
int length=fileItems.size();
for(int i=0;i<length;i++){
FileItem fi=(FileItem)fileItems.get(i);
if (fi.isFormField()){
String name = fi.getFieldName();
String value = new String(fi.getString("utf-8"));
System.out.println("value"+value);
parameters.put(name,value);
}else{
if((fi.getName()==null||fi.getName().equals(""))&&(fi.getSize()==0)){
}else{
files.add(fi);
}
}
}
return files;
}
分享到:
相关推荐
### Java/JSP中文乱码问题解决心得 #### 一、Java中文问题的由来 Java作为一种广泛使用的编程语言,其核心设计目标之一就是提供良好的跨平台能力。为此,Java采用了Unicode作为其内部处理字符的标准,这使得Java...
2. WEB应用中的乱码 在J2EE架构中,WEB应用是用户与系统交互的主要接口。WEB应用中的乱码问题,通常出现在浏览器和服务器之间的交互过程中。例如,在接收用户输入的数据或者显示服务器返回的数据时,如果没有正确...
Java Web 学习心得 Java Web 学习心得是指学习 Java Web 开发相关技术的经验总结,涵盖了 HTML、CSS、JavaScript、XML、DTD/Schema、Java EE 中的 JSP、Servlet、Filter、Listener、JSTL、EL、JQuery、Ajax 等技术...
Servlet是Java编程语言中的一个接口,用于生成动态Web内容,而JSP则是用于创建动态网页的视图技术。两者共同构成了Web应用的控制层和显示层。 首先,Servlet是基于HTTP协议的,它处理来自客户端(浏览器)的请求并...
过滤器可以用来处理乱码问题,实现URL重写,或者进行权限控制;监听器则可以用于跟踪用户的在线状态或统计网站访问量。 在数据库操作方面,通常会使用JDBC来连接和操作数据库,但随着ORM(对象关系映射)框架如...
S2SH(Struts2、Spring、Hibernate)是一个经典的Java Web开发框架组合,它整合了三个强大的开源组件,以提供模型-视图-控制器(MVC)架构的解决方案。对于初学者来说,理解并熟练掌握S2SH框架的搭建过程是迈向专业...
总结几点处理Java字符编码问题的心得: 1. **始终坚持使用Unicode编码**:Unicode是跨语言的标准,能处理多种字符集,减少乱码风险。 2. **谨慎使用`String.getBytes()`**:不指定字符集可能导致依赖于JVM的默认...
这些项目可能涵盖Web开发、数据库集成、图形用户界面设计等多个方面,帮助学习者将Java技能应用于解决实际问题。 ### .NET框架简介 尽管主要讨论Java,但“.NET”这一标签表明资源可能也涉及微软的.NET框架。.NET...
DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet-name>DisplayChart <servlet-class>org.jfree.chart....
- **字符编码转换**:在处理中文等非英文字符时,经常会出现乱码问题。为了解决这个问题,可以采用特定的编码格式进行转换。例如,将字符串从ISO-8859-1编码转换为UTF-8编码: ```java String title = ""; byte[]...
在这个实验报告中,学生周媛娣通过Java Web开发实践,使用DAO模式实现了对数据库的操作,包括增加、查询等基本功能。 1. **DAO模式的理解**: DAO模式的核心思想是创建一个对象(DAO),该对象封装了对数据库的...
本篇文章将深入探讨"weblogic10配置"这一主题,包括WebLogic 9.x与XFire 1.2.6之间的冲突解决心得以及WebLogic服务器上的中文乱码处理方法。 一、WebLogic 9.x与XFire 1.2.6冲突解决 1. **冲突原因**:WebLogic 9....
2. **系统架构**: - 表散列:将数据分散到不同的表中。 - 快慢表:快表存储最新数据,慢表存储历史数据。 - 集群:使用主服务器读写,从服务器只读,或多个服务器互为主从。 3. **性能调优**: - 确保索引合理。 ...
- `PATH`:添加J2SDK的bin目录到系统路径中,便于全局访问Java命令行工具。 2. **Tomcat安装与配置** - **版本选择**:安装Tomcat 5.5或更高版本,以确保兼容性和稳定性。 - **环境变量设置**:需设置`CATALINA_...
- **Tomcat**:支持Web应用程序的开发和测试。 - **Spring Tool Suite (STS)**:提供Spring框架相关的功能。 - **Maven Integration for Eclipse**:支持Maven项目管理。 - **JDBC Drivers**:数据库连接支持。 ...
比如中文字体乱码和PDF中无法正常显示的问题、报表分栏显示、去除记录中的null值、实现奇偶行不同背景颜色的交替显示、格式化输出、柱状图的横向显示、主报表和子报表参数的“沟通”、报表不同格式文件的导出、在Web...
STS为开发者提供了丰富的功能支持,包括对Spring框架、Java语言以及各种Web技术的支持。STS不仅能够提高开发效率,还能简化开发流程。 #### 2. 版本信息 在提供的文件名“spring-tool-suite-3.7.0.RELEASE-e4.5-...
- **在FORMS调用WEB页面**:集成外部Web资源,扩展应用功能。 - **Name_In()\COPY()函数**:详细介绍这两个函数的使用场景和注意事项。 - **Forms数据提交的方式**:探索多种数据提交方式,如直接提交、批处理...
我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会; ...