服务器端的servlet程序中service();
根据请求调用doget,dopost 产生应答信息
客户端浏览器向web服务器发送请求httpServletRequest对象
(1)请求行:get/demo/test? username=xxxx HTTP/1.1
(2)请求消息头;getHeader(“头字段的名称“)
(3)getParameter(”参数名“)参数
(4)大量的消息实体的内容 getInputStream()。。字节
getReader()。字符
流对象.read()
response对象
(1)状态行 HTTP/1.1200 OK
//一般不需要自己去设置
response.setStatus(HTTPServletResponse.SC_OK);
(2)相应消息的消息头
Content-Type
response.setContentType("text/html");
Refresh:
response.setHeader("Refresh","2;URL");//可以是也相对路径,
也可以是绝对看路径
浏览器不缓存Math.redome()方法的实现
(3)消息实体内容的设置
通过输出流对象
response.getOutputStream() 字节输出流对象
response.getWriter()字符输出流对象
告诉页面怎样显示
(4)创建正文
getoutputStream和getWriter方法
l getOutputStream方法用于返回Servlet引擎创建的字节输出流对象,Servlet程序可以按字节形式输出响应正文。
l getWriter方法用于返回Servlet引擎创建的字符输出流对象,Servlet程序可以按字符形式输出响应正文。
l getOutputStream和getWriter这两个方法互相排斥,调用了其中的任何一个方法后,就不能再调用另一方法。
l getOutputStream方法返回的字节输出流对象的类型为ServletOutputStream,它可以直接输出字节数组中的二进制数据。
l getWriter方法将Servlet引擎的数据缓冲区包装成PrintWriter类型的字符输出流对象后返回,PrintWriter对象可以直接输出字符文本内容。
l Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。
l Serlvet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法,如果没有,Servlet引擎将调用close方法关闭该输出流对象。
(5)乱码分析
浏览器
java程序中:中文字符-unicode
字符的输出流out.println();按照某种字符集的编码方式的转换成字节
数组
浏览器:字节数组-转换成字符
(6)输出缓冲区
response.setBufferSize(1024);
//实际获取中要比你设置的大
int len=response.getBufferSize()
if(itn i=0;i<len;i++){
oout.print("w");
}
// out.flush();
//out.close();
(7)下载
myHtm3
(8)请求对象转发的比较
l RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.sendRedirect 方法还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。
l 如果传递给HttpServletResponse.sendRedirect 方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建RequestDispatcher对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。
l 调用HttpServletResponse.sendRedirect方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;调用RequestDispatcher.forward 方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。
l HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求;RequestDispatcher.forward方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。
l RequestDispatcher.forward方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;而HttpServletResponse.sendRedirect方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。
l 无论是RequestDispatcher.forward方法,还是HttpServletResponse.sendRedirect方法,在调用它们之前,都不能有内容已经被实际输出到了客户端。如果缓冲区中已经有了一些内容,这些内容将被从缓冲区中清除。
(9)会话
第一次访问web服务器登录的操作输入账号:xxx密码:123—>servlet
身份验证一下是否为合法用户
产生会话id标示,不同会话id
购物:把某个商品加入到购物车----->要知道是谁请求的结果xxx加入
的---->必须记住
结账:--->xxx 结账
cookie
第一次访问web服务器时没有cookie,产生一个相应的cookie 封装在响
应消息中再发送回客户端浏览器,cookie信息保存在客服端上以后客户
端浏览器在向我们的web服务器提交请求cookie
分享到:
相关推荐
Java Web应用开发 50 课堂案例-应用Servlet读取Cookie数据.docx 学习资料 复习资料 教学资源
Java Web应用开发 29 课堂案例-使用cookie制作站点计数器.docx 学习资料 复习资料 教学资源
Java Web程序设计-1期 项目库_单元案例_Application与Cookie对象教学案例.doc 学习资料 复习资料 教学资源
JAVA Web程序设计-3期(KC006) 06单元案例_Application与Cookie对象教学案例.doc 学习资料 复习资料 教学资源
而这两种技术分别是Cookie技术和HttpSession技术。 Cookie的概述 Cookie是客户端技术,程序会把每一个用户的数据以Cookie的形式写给用户各自的浏览器。当用户再使用浏览器去访问服务器中WEB资源的时候,就会带着各自...
Welcome to Review_Reverse :waving_hand:2019年末逆向复习系列轻JS逆向分析“攒经验”项目系列公众号目前已迁移,所有的文章可以去我的CSDN和掘金查看。关于逆向析相关实实战案例的案例,目前已推出如下系列2019年...
本文章记录本人在学习 Cookie 中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。 封装函数 在默认的情况下存取Cookie是一件比较麻烦的事情。由于Cookie是通过字符串来存储信息的,所以容易导致...
我们现在站在性能优化的角度,一起简单地复习一遍这个经典的过程:首先我们需要通过 DNS(域名解析系统)将 URL 解析为对应的 IP 地址,然后与这个 IP 地址确定的那台服务器建立起 TCP 网络连接,随后我们向服务端抛...
原因2:关闭浏览器后,本地的Cookie并不一定会立刻过期,某些情况下,关闭浏览器不能结束一个会话,关闭浏览器后未关闭的会话需要通过自动过期机制来释放,在会话结束前, Cookie同样不会过期。 CSRF安全隐患产生原因...
BS系统设计期末复习题库选择填空判断题,期末复习
JavaWeb每日总结思维导图,包含JavaWeb开发的多项技术,方便复习知识点使用。内容包括:MySQL、MySQL约束&多表、MySQL多表&事务、JDBC、数据库连接池、HTML、CSS、JS基础&高级、BootStrap、XML、Tomcat、Servlet&...
7.2.1/通过Web服务器访问音频和视频/385 7.2.2/从流式服务器向助手应用程序发送多媒体/386 7.2.3/实时流协议/388 7.3/充分利用尽力而为服务/390 7.3.1/尽力而为服务的限制/390 7.3.2/在接收方消除音频的时延抖动/392...
06 COOKIE和SESSION配合使用 第54章 01 今日内容概要 02 Django内容回顾 03 Django请求生命周期之Http请求 04 Django请求生命周期之FBV和CBV 05 Django请求生命周期之CBV扩展 06 瞎扯淡 07 Django请求生命周期之...
ASP.NET 中 Cookie 的基本知识.doc ASP.NET 页面对象模型.doc asp.net200问-专家门诊—ASP.NET开发答疑 ASP.NetWebPage深入探讨.txt ASP.NET中为DataGrid添加合计字段.doc ASP.NET中实现DataGrid数据排序.doc ...
更加丰富的标签将随着对RDFa的,微数据与微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web。 通俗来讲就是使用合理、正确的标签来展示内容,比如标题用h1~h6标签、一个段落用p标签。 优点: 易于...
最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料;本资料仅用于学习。 【课程内容】 第1周 开课介绍 python发展介绍 ...堆排序复习 归并排序 希尔排序 算法练习 栈和队列 数据结构其他
为了更好的了解框架,我去复习了JavaWeb的基础知识 当我学完了JavaWeb的基础知识,在去看Spring简单多了,脑海里也能够想象出解决的思路(当然,具体如何执行的还要深入了解) XML 刚刚接触JavaWeb,相信都搞不懂为...
│ 16-tomcat的3种运行模式和执行器(线程池).avi │ 17-tomcat中连接器.avi │ 18-禁用AJP连接器.avi │ 19-tomcat中JVM参数优化.avi │ ├─补充2:Redis3.0新特性、主从复制、集群视频教程 │ │ 打开必读.txt ...