`
licg1234
  • 浏览: 49893 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java web 乱码心得补充2

阅读更多

继续web乱码之路:

 

   上次说到的乱码问题,有个地方说到比较概况,就是文件上传的处理。

 

   通过form上传的方式我们可以知道:

 

 

 

multipart/form-data

不对字符编码。

在使用包含文件上传控件的表单时,必须使用该值。

 

 

  实际情况是什么样子呢 :

 

   浏览器监视下看看

 

  1. Request URL:
    http://localhost:8080/EMRSFramework/servlet.do?actionName=InfoMasterPageAction&flag=doUpdateMasterPage
  2. Request Method:
    POST
  3. Status Code:
    200 OK
  4. Request Headers
    1. Accept:
      application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    2. Accept-Charset:
      GBK,utf-8;q=0.7,*;q=0.3
    3. Accept-Encoding:
      gzip,deflate,sdch
    4. Accept-Language:
      zh-CN,zh;q=0.8
    5. Cache-Control:
      max-age=0
    6. Connection:
      keep-alive
    7. Content-Length:
      707
    8. Content-Type:
      multipart/form-data; boundary=----WebKitFormBoundary0MLuYOGYSHLzVFBy
    9. Cookie:
      JSESSIONID=C16F7745C585B808DE7597B1EFC2C9B9
    10. Host:
      localhost:8080
    11. Origin:
      http://localhost:8080
    12. Referer:
      http://localhost:8080/EMRSFramework/servlet.do?actionName=infoIndexAction
    13. User-Agent:
      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16
  5. Query String Parameters
    1. actionName:
      InfoMasterPageAction
    2. flag:
      doUpdateMasterPage
  6. Request Payload
    1. ------WebKitFormBoundary0MLuYOGYSHLzVFBy Content-Disposition: form-data; name="masterPageId" 4 ------WebKitFormBoundary0MLuYOGYSHLzVFBy Content-Disposition: form-data; name="masterPageDesc" 框架样式4 ------WebKitFormBoundary0MLuYOGYSHLzVFBy Content-Disposition: form-data; name="firstMasterOrder" 4 ------WebKitFormBoundary0MLuYOGYSHLzVFBy Content-Disposition: form-data; name="masterOrder" 4 ------WebKitFormBoundary0MLuYOGYSHLzVFBy Content-Disposition: form-data; name="XSLPath"; filename="" Content-Type: application/octet-stream ------WebKitFormBoundary0MLuYOGYSHLzVFBy Content-Disposition: form-data; name="submit" 更新 ------WebKitFormBoundary0MLuYOGYSHLzVFBy--

 

 

   好的大家着重看看红色字体部分,大家会发现浏览器根本就没有提交编码格式给服务器,包括默认编码格式。

 

  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;
}

分享到:
评论

相关推荐

    JavaJSP中文乱码问题解决心得.doc

    ### Java/JSP中文乱码问题解决心得 #### 一、Java中文问题的由来 Java作为一种广泛使用的编程语言,其核心设计目标之一就是提供良好的跨平台能力。为此,Java采用了Unicode作为其内部处理字符的标准,这使得Java...

    J2EE平台下的乱码问题分析及解决

    2. WEB应用中的乱码 在J2EE架构中,WEB应用是用户与系统交互的主要接口。WEB应用中的乱码问题,通常出现在浏览器和服务器之间的交互过程中。例如,在接收用户输入的数据或者显示服务器返回的数据时,如果没有正确...

    javaweb学习心得.doc

    Java Web 学习心得 Java Web 学习心得是指学习 Java Web 开发相关技术的经验总结,涵盖了 HTML、CSS、JavaScript、XML、DTD/Schema、Java EE 中的 JSP、Servlet、Filter、Listener、JSTL、EL、JQuery、Ajax 等技术...

    web实训开发心得.pdf

    Servlet是Java编程语言中的一个接口,用于生成动态Web内容,而JSP则是用于创建动态网页的视图技术。两者共同构成了Web应用的控制层和显示层。 首先,Servlet是基于HTTP协议的,它处理来自客户端(浏览器)的请求并...

    web实训开发心得.docx

    过滤器可以用来处理乱码问题,实现URL重写,或者进行权限控制;监听器则可以用于跟踪用户的在线状态或统计网站访问量。 在数据库操作方面,通常会使用JDBC来连接和操作数据库,但随着ORM(对象关系映射)框架如...

    S2SH框架搭建和心得

    S2SH(Struts2、Spring、Hibernate)是一个经典的Java Web开发框架组合,它整合了三个强大的开源组件,以提供模型-视图-控制器(MVC)架构的解决方案。对于初学者来说,理解并熟练掌握S2SH框架的搭建过程是迈向专业...

    Java中的字符编码问题处理心得总结

    总结几点处理Java字符编码问题的心得: 1. **始终坚持使用Unicode编码**:Unicode是跨语言的标准,能处理多种字符集,减少乱码风险。 2. **谨慎使用`String.getBytes()`**:不指定字符集可能导致依赖于JVM的默认...

    【Java+Project】

    这些项目可能涵盖Web开发、数据库集成、图形用户界面设计等多个方面,帮助学习者将Java技能应用于解决实际问题。 ### .NET框架简介 尽管主要讨论Java,但“.NET”这一标签表明资源可能也涉及微软的.NET框架。.NET...

    jdk+tomcat+jfreechart+sql_server2000安装心得

    DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"&gt; &lt;web-app&gt; &lt;servlet-name&gt;DisplayChart &lt;servlet-class&gt;org.jfree.chart....

    JSP初学心得

    - **字符编码转换**:在处理中文等非英文字符时,经常会出现乱码问题。为了解决这个问题,可以采用特定的编码格式进行转换。例如,将字符串从ISO-8859-1编码转换为UTF-8编码: ```java String title = ""; byte[]...

    一个dao模式的实验报告

    在这个实验报告中,学生周媛娣通过Java Web开发实践,使用DAO模式实现了对数据库的操作,包括增加、查询等基本功能。 1. **DAO模式的理解**: DAO模式的核心思想是创建一个对象(DAO),该对象封装了对数据库的...

    weblogic10配置

    本篇文章将深入探讨"weblogic10配置"这一主题,包括WebLogic 9.x与XFire 1.2.6之间的冲突解决心得以及WebLogic服务器上的中文乱码处理方法。 一、WebLogic 9.x与XFire 1.2.6冲突解决 1. **冲突原因**:WebLogic 9....

    PHP面试题及答案,另附学习心得

    2. **系统架构**: - 表散列:将数据分散到不同的表中。 - 快慢表:快表存储最新数据,慢表存储历史数据。 - 集群:使用主服务器读写,从服务器只读,或多个服务器互为主从。 3. **性能调优**: - 确保索引合理。 ...

    南理工J2EE实验报告

    - `PATH`:添加J2SDK的bin目录到系统路径中,便于全局访问Java命令行工具。 2. **Tomcat安装与配置** - **版本选择**:安装Tomcat 5.5或更高版本,以确保兼容性和稳定性。 - **环境变量设置**:需设置`CATALINA_...

    Eclipse 安装配置总结.doc

    - **Tomcat**:支持Web应用程序的开发和测试。 - **Spring Tool Suite (STS)**:提供Spring框架相关的功能。 - **Maven Integration for Eclipse**:支持Maven项目管理。 - **JDBC Drivers**:数据库连接支持。 ...

    ireport快速入门指南

    比如中文字体乱码和PDF中无法正常显示的问题、报表分栏显示、去除记录中的null值、实现奇偶行不同背景颜色的交替显示、格式化输出、柱状图的横向显示、主报表和子报表参数的“沟通”、报表不同格式文件的导出、在Web...

    spring-tool-suite-3.7.0.RELEASE-e4.5-linux-gtk-x86_64.tar.gz

    STS为开发者提供了丰富的功能支持,包括对Spring框架、Java语言以及各种Web技术的支持。STS不仅能够提高开发效率,还能简化开发流程。 #### 2. 版本信息 在提供的文件名“spring-tool-suite-3.7.0.RELEASE-e4.5-...

    Oracle EBS 开发笔记

    - **在FORMS调用WEB页面**:集成外部Web资源,扩展应用功能。 - **Name_In()\COPY()函数**:详细介绍这两个函数的使用场景和注意事项。 - **Forms数据提交的方式**:探索多种数据提交方式,如直接提交、批处理...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:  第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;  ...

Global site tag (gtag.js) - Google Analytics