Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java EE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:JAVA学习日子分享 [Re:fhdking]
fhdking





发贴: 28
积分: 0
于 2007-10-30 13:25 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
1. 学习了HTTP信息头,知道了很多文件的类型是如何被服务器识别,并做出相应的反应的。
HTTP消息头
①  通用信息头
即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma
主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade
②  请求头
用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的Cookie信息和发出该请求的超链接源地址等.
主要: Accept , Accept-Encoding , Accept-Language , Host ,
③  响应头
用于在响应消息中向客户端传递附加信息,包括服务程序的名称,要求客户端进行认证的方式,请求的资源已移动到新地址等.
主要: Location , Server , WWW-Authenticate(认证头)
④ 实体头
用做实体内容的元信息,描述了实体内容的属性,包括实体信息的类型,长度,压缩方法,最后一次修改的时间和数据的有效期等.
主要: Content-Encoding , Content-Language , Content-Length , Content-Location , Content-Type
2.Content-Type的作用
服务器告诉浏览器它发送的数据属于什么文件类型,文件类型的定义在web.xml文件中的MIME标签。
并借助text/html和text/plain的对比实验加深印象,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析.
要实现文件下载,我们只需要设置两个特殊的相应头,它们是什么头?
----Content-Type:application/octet-stream
----Content-Disposition:attachment;filename=aaa.zip
3.Content-Disposition 的作用
当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。
在讲解这个内容时,张老师同时讲出了解决中文文件名乱码的解决方法,能用的是使用getBytes() , 实际上应使用email的附件名编码方法对文件名进行编码,但IE支持这种作法(其它浏览器支持) , 使用javax.mail.internet.*包的MimeUtility.encodeWord("中文.txt")的方法进行编码。
带中文名称的附件文件名到底该如何编写,参看邮件中的中文附件名的形式。
用MimeUtility.decodeText编码中文文件名后,IE浏览器显示不正常,而FireFox中没有问题。
解决中文文件名乱码的几种方式的内部原理:
  //response.setHeader("Content-Type","application/octet-stream");
  //response.setHeader("Content-Disposition","attachment;filename=\"=?gb2312?B?SmF2YcXg0bUudHh0?=\"");
  //response.setHeader("Content-Disposition","attachment;filename="+ MimeUtility.encodeWord("中文.txt"));
    response.setHeader("Content-Disposition",
    new String("attachment;filename=中文.txt".getBytes("GB2312"),"iso8859-1")  
  Wink;
setContentType("text/html;charset=gbk")只对response.getWriter().println输出的实体内容起作用,不对response.setHeader方法输出的内容起作用,response.setHeader方法总是按iso8859-1输出。
4. 由一个具有多个图的网页的访问过程讲解了http 1.0的缺点,讲解了Http 1.1的优点。
  HTTP1.1 支持持久连接
5. tomcat5.5首页已经使用了xhtml,特别如下一段内容:
<style type="text/css">
/*<![CDATA[*/
body {
   }
/*]]>*/
</style>
首先由xml解析器解析出每个元素的信息,然后由下游程序对每个元素进行处理。重点分析了其中的/*<![CDATA[*/的问题。
6. POST请求方式:
POST /servlets-examples/servlet/RequestParamExample HTTP/1.1
Host:
Content-Type: application/x-www-form-urlencoded
Content-Length: 28
firstname=zxx&lastname=abc
7. 怎么把MimeUtility所属的jar文件安装到当前Web应用程序中
  将JAR文件放在当前WEB应用程序的WEB-INF\lib目录下
8. 下面的代码说明jsp翻译成class时的编码问题。
<%=
  "a中文".length()
%>
为什么上面的输出值为5?改成下面的则输出3
<%@ page pageEncoding="gbk"%>
<%=
  "a中文".length()
%>
---------归根到底是编码的问题 , 上面的代码,因为没有添加该文件的编码说明 , WEB应用程序在将jsp翻译成class文件时 , 把该字符串的内容默认当成了UTF-8翻译,因为一个汉字在UTF-8中占两个字节,长度就变成了5 , 而下面的一个因为加了编码说明 , Tomcat 就把一个汉字当成一个字符来计算,得到结果为3。




话题树型展开
人气 标题 作者 字数 发贴时间
100135 JAVA学习日子分享 fhdking 3647 2007-10-16 16:03
97145 Re:JAVA学习日子分享 fhdking 1568 2007-10-17 13:51
95055 Re:JAVA学习日子分享 fhdking 18 2007-10-25 14:21
95488 Re:JAVA学习日子分享 fhdking 3449 2007-10-25 14:27
95488 Re:JAVA学习日子分享 fhdking 1407 2007-10-26 14:21
95029 Re:JAVA学习日子分享 fhdking 59 2007-10-28 14:17
94993 Re:JAVA学习日子分享 fhdking 1380 2007-10-28 14:21
94982 Re:JAVA学习日子分享 fhdking 841 2007-10-29 14:29
95205 Re:JAVA学习日子分享 fhdking 2640 2007-10-30 13:25
94661 Re:JAVA学习日子分享 wwww6662003 8 2007-11-01 07:47
94831 Re:JAVA学习日子分享 fhdking 72 2007-11-04 13:53
95820 Re:JAVA学习日子分享 fhdking 2678 2007-11-04 13:56
95719 Re:JAVA学习日子分享 fhdking 2274 2007-10-18 14:07
94814 Re:JAVA学习日子分享 fhdking 903 2007-11-05 15:15
95507 缓存问题 fhdking 3108 2007-11-07 15:49
95154 Re:JAVA学习日子分享--路径问题 fhdking 3766 2007-11-07 15:53
94266 Re:JAVA学习日子分享--路径问题 JJ_JJ 57 2007-11-09 01:23
97637 JSP乱码和out内置对象 fhdking 3357 2007-11-08 09:33
94412 Re:JAVA学习日子分享 fhdking 73 2007-11-09 17:57
97119 include和forward方法 fhdking 3648 2007-11-12 10:21
94205 Re:JAVA学习日子分享 王勇 19 2007-11-17 18:05
93914 Re:JAVA学习日子分享 fhdking 46 2007-11-19 15:06
94442 Re:JAVA学习日子分享 fhdking 9819 2007-11-19 15:17
94336 Re:JAVA学习日子分享 fhdking 6200 2007-11-20 11:05
95688 Re:JAVA学习日子分享 fhdking 1623 2007-10-19 13:33
95885 培训日记(利用session自动登录) fhdking 6190 2007-11-21 11:05
92938 Re:JAVA学习日子分享 ws5696611 54 2007-12-26 19:09
93535 Re:JAVA学习日子分享 g007 10 2008-01-14 15:26
95216 Re:JAVA学习日子分享 fhdking 2579 2007-10-21 14:53
95181 Re:JAVA学习日子分享 fhdking 313 2007-10-22 15:46
95501 Re:JAVA学习日子分享 fhdking 1733 2007-10-23 13:42
95281 Re:JAVA学习日子分享 fhdking 1929 2007-10-24 13:37
94834 Re:JAVA学习日子分享 yunshao110 5 2007-10-25 07:51
95012 Re:JAVA学习日子分享 yunshao110 5 2007-10-25 07:54

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923