`
peonyzzdx
  • 浏览: 587351 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

request与response的作用

    博客分类:
  • web
 
阅读更多
Request对象:为脚本提供了当客户端请求一个页面或者传递一个窗体时,客户端提供的全部信息。这包括能指明浏览器和用户的HTTP变量,在这个域名下存放在浏览器中的cookie,任何作为查询字符串而附于URL后面的字符串或页面的<FORM>段中的HTML控件的值。也提供使用Secure Socket Layer(SSL)或其他加密通信协议的授权访问,及有助于对连接进行管理的属性。
Response对象:用来访问服务器端所创建的并发回到客户端的响应信息。为脚本提供HTTP变量,指明服务器和服务器的功能和关于发回浏览器的内容的信息,以及任何将为这个域而存放在浏览器里新的cookie。它也提供了一系列的方法用来创建输出,例如无处不在的Response.Write方法。
cookie: Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。 当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
讲的通俗一点就是:
Request(中文“请求”的意思):可以理解为客户端向服务器请求的信息,就是客户端向服务器请求时,把自己的浏览器信息、HTTP变量和保存在客户端的Cookie告诉服务器,这样服务器就可以根据这些信息判断是谁请求的,之前有没有请求过,对应客户端的Session是什么等等。
Response(中文“反应、响应”的意思):可以理解为服务器对客户端请求的响应,就是服务器接收到客户端的请求后,成生页面信息、Cookie(发到客户端后就保存在客户端)等发送到客户端。
Cookie(中文“饼干”,在这里不能这样理解了):就是保存在客户端上的一些信息,可以用来验证用户信息,提高用户响应速度等等。为何不把它理解为:我把饼干放在家里,我想吃的时候就拿出来吃。呵呵!


==============================================================


response.sendRedirect()和request.getRequestDispatcher().forward(request,response)的区别
跳转方式

=============================================================

运用forward方法只能重定向到同一个Web应用程序中的一个资源。而sendRedirect方法可以让你重定向到任何URL。
表单form的action="/uu";sendRedirect("/uu");表示相对于服务器根路径。如http://localhost:8080/Test应用(则提交至http://localhost:8080/uu);
Forward代码中的"/uu"则代表相对与WEB应用的路径。如http://localhost:8080/Test应用(则提交至http://localhost:8080/Test/uu);


(运用RequestDispatcher接口的Forward)方法
forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,
同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面.
重定向后浏览器地址栏URL不变.

只有在客户端没有输出时才可以调用forward方法。如果当前页面的缓冲区(buffer)不是空的,那么你在调用forward方法前必须先清空缓冲区。
"/"代表相对与web应用路径

RequestDispatcher rd = request.getRequestDispatcher("/ooo");
rd.forward(request, response);提交至http://localhost:8080/Test/ooo

RequestDispatcher rd = getServletContext().getRequestDispatcher("/ooo");
rd.forward(request, response);提交至http://localhost:8080/Test/ooo

RequestDispatcher rd =getServletContext().getNamedDispatcher("TestServlet");(TestServlet为一个<servlet-name>)
rd.forward(request, response);提交至名为TestServlet的servlet

如果在<jsp:forward>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。
另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交
从http://localhost:8080/Test/gw/page.jsp中转发
<jsp:forward page="OtherPage.jsp"/>在JSP页面被解析后转换成pageContext.forward("OtherPage.jsp");
"/OtherPage.jsp"提交到http://localhost:8080/Test/OtherPage.jsp
"OtherPage.jsp"提交到http://localhost:8080/Test/gw/OtherPage.jsp

(运用HttpServletResponse接口的sendRedirect)方法302
是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,
同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件.

假设转发代码包含于注册的servlet-url为/ggg/tt;jsp为/ggg/tt.jsp:
绝对路径:response.sendRedirect("http://www.brainysoftware.com")发送至http://www.brainysoftware.com
根路径:response.sendRedirect("/ooo")发送至http://localhost:8080/ooo
相对路径:response.sendRedirect("ooo")发送至http://localhost:8080/Test/ggg/ooo,

sendRedirect等同于此方式
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn = "/newpath/jsa.jsp";
response.setHeader("Location",newLocn);
(Meta Refresh)方法200
这种方法是由HTML提供的,Meta本身就是HTML标签。使用方法是:<meta http-equiv="refresh" content="5; url=http://www.dreamdu.com/" />
相应的java代码
String content=stayTime+";URL="+URL;
response.setHeader("REFRESH",content);
--------------------------------------------------------------------------------------------------------------------------
使用response.sendRedirect()地址栏将改变
使用request.getRequestDispatcher().forward(request,response)地址栏中的信息保持不变.
--------------------------------------------------------------------------------------------------------------------------
request.setAttribute存的东西
只用通过方法2跳转 才能在新页取出来
--------------------------------------------------------------------------------------------------------------------------
redirect 会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器, 然后服务器发新的response给浏览器. 这时页面收到的request是一个新从浏览器发来的.

forward 发生在服务器内部, 在浏览器完全不知情的情况下发给了浏览器另外一个页面的response. 这时页面收到的request不是从浏览器直接发来了,可能己经放了数据.

所以:
request.setAttribute存的东西

只用通过方法2跳转 才能在新页取出来
  • 大小: 55.1 KB
分享到:
评论

相关推荐

    request与response 详解

    通过上述分析可以看出,`Request`与`Response`在Web开发中起着桥梁的作用,它们不仅能够帮助开发者更好地理解客户端的需求,还能够灵活地控制服务器端如何响应这些需求。掌握这两个对象的基本用法对于从事Web开发的...

    asp.net中Request与response常用属性方法

    ASP.NET 中 Request 与 Response 的常用属性方法 在 ASP.NET 中,Request 和 Response 是两个非常重要的对象,它们分别代表了客户端的请求信息和服务器的响应信息。了解 Request 和 Response 的常用属性方法是 ASP...

    servlet*request*response技术作用明晰

    通过地址解析一张图说明浏览器和Tomcat服务器之间的通信关系。相关技术点有servlet、request、response、(XML小配置)等等。

    request和response

    ### Request与Response概述 在Web开发中,Request对象代表了客户端向服务器发送的请求,它封装了所有请求的细节,如HTTP方法(GET、POST等)、请求参数、请求头等。而Response对象则代表了服务器对客户端请求的响应...

    Request与Response.md

    Request与Response

    request和response实现跳转和重定向的区别

    在Web开发中,请求(request)和响应(response)是HTTP协议的核心概念,它们是客户端与服务器交互的基础。在处理用户操作时,我们常常需要对页面进行跳转或重定向,这通常通过`request`和`response`对象来实现。这两者...

    struts2使用request、response

    ### Struts2中request与response的使用方法 #### 一、引言 Struts2作为Struts1的后续版本,在架构设计与实现机制上进行了大量的改进。相较于Struts1,Struts2对request、response、session等核心对象的处理方式有所...

    ASP第4章 Request和Response对象

    ASP中的Request和Response...总的来说,Request和Response对象是ASP编程中的基础组件,它们帮助开发者处理客户端与服务器之间的数据交互,从而实现动态网站的功能。了解和熟练使用这两个对象是ASP开发的关键技能之一。

    request 和response的用法

    在c#Asp.Net简单告诉你request和response的用法;

    09_Java Web——Request&Response案例

    在"09_Java Web——Request&Response案例"这个主题中,我们聚焦于HTTP请求和响应这两个核心概念,它们是Web应用中客户端与服务器交互的基础。下面将详细阐述相关知识点。 1. **HTTP协议**:超文本传输协议(HTTP)...

    ASP内置对象Request和Response详解

    与`Request`相对,`Response`对象负责向客户端发送数据。这包括HTML页面、文本、图像、JSON数据或任何其他可以被客户端解析的内容。`Response`还提供了控制HTTP响应状态码、重定向、设置cookies等功能。 ##### 常用...

    ASp教程第四章-Response和Request

    在ASP中,熟练掌握`Request`和`Response`对象的使用至关重要,因为它们构成了服务器端与客户端交互的基础。理解它们的各个属性和方法,能够帮助开发者构建动态、交互性强的Web应用程序。在实际开发中,根据需求灵活...

    Request和Response.txt

    在Web开发中,`Request`与`Response`对象是非常核心且基础的概念。它们是客户端与服务器端交互的重要桥梁,用于处理HTTP请求与响应。本文将深入剖析这两个对象的功能及使用方法。 #### 二、Request对象详解 `...

    asp中的request response语句语法解析

    【ASP中的Request Response语句语法解析】 在ASP(Active Server Pages)编程中,Request和Response对象是基础且至关重要的组成...在ASP编程中,掌握Request和Response对象的使用是实现服务器与客户端有效交互的关键。

    request+response学习笔记

    在这个笔记中,我们将详细介绍 Request 和 Response 的概念、作用、使用方法以及相关的知识点。 Request 概念 在 Web 开发中,Request 指的是客户端向服务器发送的请求信息,包括 URL、参数、 Header 等信息。...

    JAVAEE中Servlet实例Response与Request对象方法调用范例

    本实例主要探讨Servlet中的两个关键对象:HttpServletRequest(Request)和HttpServletResponse(Response),它们是Servlet API的核心组成部分,用于处理HTTP请求和构建响应。 Request对象是用于获取客户端发送的...

    request response

    在IT行业中,网络通信是核心部分之一,而`request`和`response`是HTTP协议中的两个基本概念,它们构成了客户端(如浏览器)与服务器端之间交互数据的核心机制。本篇文章将深入探讨这两个概念以及它们在实际开发中的...

    response和request(web开发技术第四章)

    在Web服务器与浏览器之间进行通信时,`request`(请求)是客户端(通常是浏览器)向服务器发送的一种消息。它包含了用户想要获取资源的详细信息,如HTTP方法(GET、POST、PUT等)、URL、HTTP版本、请求头和请求体。...

    JSP request&response;&out;.ppt

    什么是JSP的内置对象 JSP的内置对象有哪些? request对象 与 response对象 session对象 application对象 out对象

Global site tag (gtag.js) - Google Analytics