传智播客HttpServletResponse方立勋

上传人:san****019 文档编号:20681364 上传时间:2021-04-12 格式:PPT 页数:19 大小:725.50KB
收藏 版权申诉 举报 下载
传智播客HttpServletResponse方立勋_第1页
第1页 / 共19页
传智播客HttpServletResponse方立勋_第2页
第2页 / 共19页
传智播客HttpServletResponse方立勋_第3页
第3页 / 共19页
资源描述:

《传智播客HttpServletResponse方立勋》由会员分享,可在线阅读,更多相关《传智播客HttpServletResponse方立勋(19页珍藏版)》请在装配图网上搜索。

1、 高级软件人才实作培训专家 ! 北京传智播客教育 response、 request对象 讲师:方立勋 高级软件人才实作培训专家 ! 北京传智播客教育 Tip:简介 Web服务器收到客户端的 http请求,会针对每一次请 求,分别创建一个用于代表请求的 request对象、和代 表响应的 response对象。 request和 response对象即然代表请求和响应,那我们 要获取客户机提交过来的数据,只需要找 request对象 就行了。要向客户机输出数据,只需要找 response对 象就行了。 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: HttpServletRespon

2、se HttpServletResponse对象服务器的 响应 。这个对象中封装了 向客户端发送数据、发送响应头,发送响应状态码的方法。 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: response常见应用 向客户端输出中文数据 分别以 OutputStream和 PrintWriter输出 用 OutputStream输出 1,客户端看到的是什么? 文件下载 生成随机图片 发送 http头,控制浏览器定时刷新网页 (REFRESH) 发送 http头,控制浏览器禁止缓存当前文档内容 多学一招:使用语言里面的 标签 来控制浏览器行为 高级软件人才实作培训专家 ! 北京传智播客教育

3、 Tip: response常见应用 通过 response实现请求重定向。 请求重定向指:一个 web资源收到客户端请求后,通 知客户端去访问另外一个 web资源,这称之为请求重 定向。 应用场景:用户注册。 实现方式 response.sendRedirect() 实现原理: 302状态码和 location头即可实现重定向 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: 请求重定向的运行流程 W e b 容器 响应头空 响应体空 response W e b 浏览器 调用 Se rvle t1 的 serv ic e (Se rvle tR e qu e st req , Se

4、 rvle tR e spo nse r e s ) 请求头 请求体 request Se rvle t1 W e b 浏览器 W e b 容器 响应头 响应体 response S e rv i c e 方法 请求头 请求体 request 读取请求信息 Servlet1 用s e n g d R e d i r e c t 方法 写入特殊响应头 e b 浏览器 W e b 容器 请求头 请求体 request 响应头 响应体 response se rv ic e 方法返回 S e rv le t1 W eb 浏览器 W eb 容器 请求头 请求体 request 响应头 响应体 resp

5、onse 读取响应信息 S er v le t1Web 浏览器 Web 容器 发出包含重定向 信息的 HTTP 响应 S erv let 1 请求头 请求体 req ue st 响应头 响应体 res po ns e W e b 浏览器 W e b 容器 发出包含重定向 的H T T P 请求信息 首次访问,容器才创建目标Se rv le t W e b 容器W e b 浏览器 S e r v l e t 2 W eb 浏览器 W eb 容器 请求头 请求体 request 响应头空 响应体空 response 创建请求和响应对象 Servlet 2 W e b 容器 响应头空 响应体空 re

6、sponse W e b 浏览器 调用 S e rv l e t 2 的 s e rv i c e (S e rv l e t R e q u e s t re q , S e rv l e t R e s p o n s e r e s ) 请求头 请求体 request S e rv l e t 2 W e b 浏览器 W e b 容器 响应头 响应体 response S e r v i c e 方法 请求头 请求体 request 写入响应信息 读取请求信息 Servlet2 浏览器 W e b 容器 请求头 请求体 request 响应头 响应体 response se rv ic

7、e 方法返回 S e rv le t2 W eb 浏览器 W eb 容器 请求头 请求体 request 响应头 响应体 response 读取响应信息 S er vl et 2W eb 浏览器 eb 容器 发出ht tp 响应 请求头 请求体 request 响应头 响应体 response S er vl et 2 W e b 浏览器 W e b 容器 发出 H TT P 请求 S e r v l e t 1首次访问,容器才创建目标S e r v l e tW e b 容器W e b 浏览器 Servl et 1 浏览器 W eb 容器 请求头 请求体 reques t 响应头空 响应体空

8、 respons e 创建请求和响应对象 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: response细节 getOutputStream和 getWriter方法分别用于得到输出二进制数据、 输出文本数据的 ServletOuputStream、 Printwriter对象。 getOutputStream和 getWriter这两个方法互相排斥,调用了其中 的任何一个方法后,就不能再调用另一方法。 Servlet程序向 ServletOutputStream或 PrintWriter对象中写入的数 据将被 Servlet引擎从 response里面获取, Servlet引擎将

9、这些数 据当作响应消息的正文,然后再与响应状态行和各响应头组合后 输出到客户端。 Serlvet的 service方法结束后, Servlet引擎将检查 getWriter或 getOutputStream方法返回的输出流对象是否已经调用过 close方 法,如果没有, Servlet引擎将调用 close方法关闭该输出流对象。 高级软件人才实作培训专家 ! 北京传智播客教育 HttpServletRequest 方立勋 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: HttpServletRequest HttpServletRequest对象代表客户端的请求,当客户 端通过 HT

10、TP协议访问服务器时, HTTP请求头中的所 有信息都封装在这个对象中,开发人员通过这个对象 的方法,可以获得客户这些信息。 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: Request常用方法 获得客户机信息 getRequestURL方法返回客户端发出请求时的完整 URL。 getRequestURI方法返回请求行中的资源名部分。 getQueryString 方法返回请求行中的参数部分。 getPathInfo方法返回请求 URL中的额外路径信息。额外路径信息是 请求 URL中的位于 Servlet的路径之后和查询参数之前的内容,它以 “ /” 开头。 getRemoteAd

11、dr方法返回发出请求的客户机的 IP地址 getRemoteHost方法返回发出请求的客户机的完整主机名 getRemotePort方法返回客户机所使用的网络端口号 getLocalAddr方法返回 WEB服务器的 IP地址。 getLocalName方法返回 WEB服务器的主机名 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: Request常用方法 获得客户机请求头 getHeader方法 getHeaders方法 getHeaderNames方法 获得客户机请求参数 (客户端提交的数据 ) getParameter方法 getParameterValues( String na

12、me)方法 getParameterNames方法 getParameterMap方法 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: request常见应用 1 防盗链 各种表单输入项数据的获取 text、 password、 radio、 checkbox、 file、 select、 textarea、 hidden、 image、 button给 js编程用 请求参数的中文乱码问题 Javascript防止表单重复提交 URL地址的编码 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: request常见应用 2 request对象实现请求转发:请求转发指一个 web

13、资源收到客户端 请求后,通知服务器去调用另外一个 web资源进行处理。 请求转发的应用场景: MVC设计模式 request对象提供了一个 getRequestDispatcher方法,该方法返回 一个 RequestDispatcher对象,调用这个对象的 forward方法可以 实现请求转发。 request对象同时也是一个域对象,开发人员通过 request对象在 实现转发时,把数据通过 request对象带给其它 web资源处理。 setAttribute方法 getAttribute方法 removeAttribute方法 getAttributeNames方法 高级软件人才实作培训

14、专家 ! 北京传智播客教育 Tip: 请求转发的细节 forward方法用于将请求转发到 RequestDispatcher对象封 装的资源。 如果在调用 forward方法之前,在 Servlet程序中写入的部分 内容已经被真正地传送到了客户端, forward方法将抛出 IllegalStateException异常。 如果在调用 forward方法之前向 Servlet引擎的缓冲区中写入 了内容,只要写入到缓冲区中的内容还没有被真正输出到 客户端, forward方法就可以被正常执行,原来写入到输出 缓冲区中的内容将被清空,但是,已写入到 HttpServletResponse对象中的响

15、应头字段信息保持有效。 高级软件人才实作培训专家 ! 北京传智播客教育 Tip:请求转发的运行流程 W eb 容器 响应头空 响应体空 response W eb 浏览器 调用 S er v le t1 的 s er v ic e (S er v le tR eq u es t re q , S er v le tR es p o n s e re s ) 请求头 请求体 request S er v le t1 W e b 浏览器 W e b 容器 响应头 响应体 response S e rv i c e 方法 请求头 请求体 request 读取请求信息 Servlet1 写入响应信息

16、W e b 浏览器 W e b 容器 调整头 请求体 request 响应头 清空体 response S e rv ic e 方法 Servlet1 发出 fo rw a rd 命令 S erv le t2W eb 浏览器 W eb 容器 请求头 请求体 request 响应头 响应体空 response 初次访问创建S e r v l e t 2 W eb 浏览器 W eb 容器 请求头 请求体 request 响应头 响应体 response S er vl et 2 调用Se rv le t2 的 service (S er vl et R eq ue st re q, S er vl

17、 et R es po ns e re s ) S er vl et 1 W eb 浏览器 响应头 响应体 response S erv ic e 方法 Servlet2读取请求信息 请求头 请求体 request 写入响应体追加响应头 W eb 容器 e b 浏览器 W e b 容器 请求头 请求体 request 响应头 响应体 response s e r v ic e 方法返回 S e r v le t1 S e r v le t2 W eb 浏览器 W eb 容器 请求头 请求体 request 响应头 响应体 response service 方法返回 S er vl et 1 S

18、 er vl et 2 W e b 浏览器 W e b 容器 请求头 请求体 request 响应头 响应体 response 读取响应信息 S e rv le t1 S e rv le t2W eb 浏览器 W eb 容器 发出ht tp 响应 请求头 请求体 request 响应头 响应体 response S erv let 1 S erv let 2 W eb 浏览器 W eb 容器 发出 H T T P 请求 S e r v l e t 1首次访问 ,容器才创建目标S e r v l e te b 容器e b 浏览器 Servlet 1W eb 浏览器 W eb 容器 请求头 请求体

19、 request 响应头空 响应体空 response 创建请求和响应对象 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: 请求重定向和请求转发的区别 一个 web资源收到客户端请求后,通知服务 器去调用另外一个 web资源进行处理,称之 为请求转发。 一个 web资源收到客户端请求后,通知浏览 器去访问另外一个 web资源,称之为请求重 定向。 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: 请求重定向和请求转发的区别 RequestDispatcher.forward方法只能将请求转发给同一个 WEB应用中的组件;而 HttpServletResponse.sendRe

20、direct 方法还可以重定向到同一个站点上的其他 应用程序中的资源,甚至是使用绝对 URL重定向到其他站点的资源。 如果传递给 HttpServletResponse.sendRedirect 方法的相对 URL以“ /” 开头, 它是相对于整个 WEB站点的根目录;如果创建 RequestDispatcher对象时指定的相 对 URL以“ /” 开头,它是相对于当前 WEB应用程序的根目录。 调用 HttpServletResponse.sendRedirect方法重定向的访问过程结束后,浏览器 地址栏中显示的 URL会发生改变,由初始的 URL地址变成重定向的目标 URL;调用 Requ

21、estDispatcher.forward 方法的请求转发过程结束后,浏览器地址栏保持初 始的 URL地址不变。 HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应,响应的 结果就是告诉浏览器去重新发出对另外一个 URL的访问请求; RequestDispatcher.forward方法在服务器端内部将请求转发给另外一个资源, 浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了 转发行为。 RequestDispatcher.forward方法的调用者与被调用者之间共享相同的 request对 象和 response对象,它们属于

22、同一个访问请求和响应过程;而 HttpServletResponse.sendRedirect方法调用者与被调用者使用各自的 request 对象和 response对象,它们属于两个独立的访问请求和响应过程。 高级软件人才实作培训专家 ! 北京传智播客教育 Tip: RequestDispatcher include方法: RequestDispatcher.include方法用于将 RequestDispatcher 对象封装的资源内容作为当前响应内容的一部分包含进来, 从而实现可编程的服务器端包含功能。 被包含的 Servlet程序不能改变响应消息的状态码和响应头, 如果它里面存在这样的语句,这些语句的执行结果将被忽略。 高级软件人才实作培训专家 ! 北京传智播客教育 Tip:作业 DelArticleServlet.java

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!