云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > (完整版)韩顺平 2011细说Servlet笔记

(完整版)韩顺平 2011细说Servlet笔记

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 19:59:53

300-399 400-499 500-599 为完成请求,客户需要进行一步细化请求。例如:请求的资源已经移动一个新的地址,常用302,307 客户端的请求有错误404 服务器端出现错误,常用500

4.2.1http响应的状态行举例说明

200 就是整个请求和响应过程没有发生错误,这个最常见. 302: 表示当你请求一个资源的时候,服务器返回302 表示,让浏览器转向到另外一个资源,比如: response.sendRedirect(“/web应用/资源名”) 案例:

response.setStatus(302);

response.setHeader(\, \); //上面两句话等价

response.sendRedirect(\404:找不到资源 500: 服务器端错误

4.2.2 http响应消息头详解

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Location: http://www.baidu.org/index.jsp【让浏览器重新定位到url】 Server:apache tomcat【告诉浏览器我是tomcat】 Content-Encoding: gzip 【告诉浏览器我使用 gzip】 Content-Length: 80 【告诉浏览器会送的数据大小80节】 Content-Language: zh-cn 【支持中文】

Content-Type: text/html; charset=GB2312 [内容格式text/html; 编码gab2312]

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT【告诉浏览器,该资源上次更新时间】

Refresh: 1;url=http://www.http://www.china-audit.com/【过多久去,刷新到 http://www.http://www.china-audit.com/】 Content-Disposition: attachment; filename=aaa.zip【告诉浏览器,有文件下载】

Transfer-Encoding: chunked [传输的编码]

Set-Cookie:SS=Q0=5Lb_nQ; path=/search[后面详讲] Expires: -1[告诉浏览器如何缓存页面IE]

Cache-Control: no-cache [告诉浏览器如何缓存页面火狐] Pragma: no-cache [告诉浏览器如何缓存页面]

Connection: close/Keep-Alive[保持连接 1.1是Keep-Alive] Date: Tue, 11 Jul 2000 18:23:51 GMT

4.2.3 定时刷新Refresh使用

response.setHeader(\

25

4.2.4文件下载 Content-Disposition

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { response.setContentType(\);

//PrintWriter out = response.getWriter(); //演示下载文件

response.setHeader(\, \attachment; filename=winter.jpg\);

//打开文件.说明一下web 站点下载文件的原理 //1.获取到要下载文件的全路径 String

path=this.getServletContext().getRealPath(\); //System.out.println(\ //2创建文件输入流

FileInputStream fis=new FileInputStream(path); //做一个缓冲字节数组

byte buff[]=newbyte[1024];

int len=0;//表示实际每次读取了多个个字节

OutputStream os=response.getOutputStream(); while((len=fis.read(buff))>0){ os.write(buff, 0, len); }

//缺点: 没有进度条./图标/ //关闭

os.close(); fis.close(); }

4.2.5 缓存讲解

提出问题:浏览器默认情况下,会缓存我们的页面,这样出现一个问题:如果我们的用户习惯把光标停留在地址栏,然后回车来取页面,就会默认调用cache中取数据。 i.有些网站要求及时性很高,因此要求我们不缓存页面 代码:

//指定该页面不缓存 Ie

response.setDateHeader(\, -1);【针对IE浏览器设置不缓存】 //为了保证兼容性.

response.setHeader(\, \);【针对火狐浏览器等】 response.setHeader(\, \);【其他浏览器】

ii.有些网站要求网页缓存一定时间,比如缓存一个小时 response.setDateHeader(\System.currentTimeMillis()+3600*1000*24);后面一个参数表示设置的缓存保持时间,-1表示永远缓存 练习:

26

加入防止盗链下载.

4. 3 HttpServletResponse的再说明

4.3.1getWriter()和getOutputStream()的区别

3 getWriter() 用于向客户机回送字符数据

2.getOutputStream() 返回的对象,可以回送字符数据,也可以回送字节数据(二进制数据) OutputStream os=response.getOutputStream(); os.write(\

如何选择:

如果我们是回送字符数据,则使用 PrintWriter对象 ,效率高 如果我们是回送字节数据(binary date) ,则只能使用OutputStream ?这两个流不能同时使用. 比如:

OutputStream os=response.getOutputStream(); os.write(\.getBytes()); PrintWriter out=response.getWriter(); out.println(\); 就会报错:

java.lang.IllegalStateException: getOutputStream() has already been called for this response

27

4.3.2不能同时使用printWriter和outputstream的原因

Web服务器会自动检查并关闭流

从该图,我们也可以看出. 为什么我们没有主动关闭流,程序也没有问题的原因. 当然:你主动关闭流,更好.

4.3.3参数的传递方式sendRedirect()和session()

需求: 当用户登录成功后,把该用户名字显示在登录成功页面; ①使用sendRedirect()来传递字符参数 解决思路:

1. 使用java基础 static 2. 使用sendRedirect() 代码:

response.sendRedirect(\ord);

3. 使用session 传递[后面讲] 这里,我们先预热. 说明: 基本格式:

response.sendRedirect(“servlet的地址?参数名=参数值&参数名=参数值...”); ?参照值是String , 参数名应当使用字母组合 在接受数据的Servlet中:

String 参数=request.getParameter(“参数名”); ②使用session()来传递字符参数和对象 A.传递字符串

放入session request.getSession.setAttribute(\

取出session 在JSP中通过session取出 request.getSession.getAttribute(\B.传递对象

User user= new User(); user.setName(“xiaoli”); user.setPassWord(“123”);

28

搜索更多关于: (完整版)韩顺平 2011细说Servlet笔记 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

300-399 400-499 500-599 为完成请求,客户需要进行一步细化请求。例如:请求的资源已经移动一个新的地址,常用302,307 客户端的请求有错误404 服务器端出现错误,常用500 4.2.1http响应的状态行举例说明 200 就是整个请求和响应过程没有发生错误,这个最常见. 302: 表示当你请求一个资源的时候,服务器返回302 表示,让浏览器转向到另外一个资源,比如: response.sendRedirect(“/web应用/资源名”) 案例: response.setStatus(302); response.setHeader(\, \); //上面两句话等价 response.sendRedirect(\404:找不到资源 500: 服务器端错误 4.2

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com