request对象,requests发送请求成功后,会返回一个request类的对象是正确的吗?
request对象,requests发送请求成功后,会返回一个request类的对象是正确的吗?详细介绍
本文目录一览: request对象是有什么功能?
request 的其他功能,request 是一个域对象,request 对象也是一个存储数据的区域对象,所以也具有如下方法:setAttribute(String name, Object o),getAttribute(String name),removeAttribute(String name)
request 完成请求转发,获得请求转发器----path 是转发的地址RequestDispatchegetRequestDispatcher(String path),通过转发器对象转发requestDispathcer.forward(ServletRequest request, ServletResponse response)
HttpServletRequest 概述,在创建 Servlet 时会覆盖 service() 方法,或 doGet()/doPost(), 这些方法都有两个参数,一个为代表请求的 request 和代表响应 response。
service 方法中的 request 的类型是 ServletRequest,而 doGet/doPost 方法的request 的类型是 HttpServletRequest,HttpServletRequest 是 ServletRequest 的子接口,功能和方法更加强大,今天我们学习HttpServletRequest。因为 request 代表请求,所以我们可以通过该对象分别获得 Http 请求的请求行,请求头和请求体。
通过 request 获得请求行,获得客户端的请求方式:String getMethod()
获得请求的资源:String getRequestURI(),StringBuffer getRequestURL(),String getContextPath(),String getQueryString(),request.getRemoteAddr()
通过 request 获得请求头,long getDateHeader(String name),String getHeader(String name),Enumeration getHeaderNames(),Enumeration getHeaders(String name),int getIntHeader(String name),这里只展示最常用的两种方法~
通过 request 获得请求体,请求体中的内容是通过 post 提交的请求参数,通过一下方法获得请求参数:String getParameter(String name),String[] getParameterValues(String name),Enumeration getParameterNames(),Map
getParameterMap()
注意:get 请求方式的请求参数 上述的方法一样可以获得
request对象的作用是什么
利用request对象可以得到客户端的请求信息,例如客户端ip,端口号,请求参数等等
简单的说,就是从其他网页或cookie取得参数,就是专门取得外部值的
request对象的主要功能是服务器端接受客户端以HTTP方式传送给用户端数据,
以便对其进一步处理,实现交互设计的功能
Request(计算机专业术语)详细资料大全
request这个对象不用事先声明,就可以在JSP网页中使用,在编译为Servlet之后,它会转换为javax.servlet..HttpServletRequest形态的对象,HttpServletRequest对象是有关于客户端所发出的请求的对象,只要是有关于客户端请求的信息,都可以借由它来取得,例如请求标头、请求方法、请求参数、客户端IP,客户端浏览器等等信息。
基本介绍 外文名 :Request 使用协定 :HTTP/1.1 请求方法 :GET 使用者主机IP :127.0.0.1 主要方法,举例示范,ASP对象,Request 对象,参数,方法,比较,属性, 主要方法 getParameterNames():取得客户端所发出的请求参数名称. getParameter():可以让您指定请求参数名称,以取得对应的设定值. getServerName():请求的伺服器. getProtocol():使用协定. getMethod():请求方法. getServerPort():请求连线埠号. getContextPath():Context路径. getServletPath(): Servlet路径. getRequestURI():URI路径. getQueryString():查询字元串. getRemoteAddr():使用者主机IP. getRemotePort():使用者使用连线埠号. 举例示范 :localhost:8080/myjsp/requestdemo.jsp?name=john&nick=john 对应的信息为: 请求的伺服器: localhost 使用协定: HTTP/1.1 请求方法: GET 请求的连线埠号: 8080 Context路径: /myjsp Servlet路径: /requestdemo.jsp URI路径: /myjsp/requestdemo.jsp 查询字元串: name=john&nick=john 使用者主机IP: 127.0.0.1 使用者使用连线埠号: 1060 ASP对象 Request 对象 可以使用 Request 对象访问任何基于 HTTP 请求传递的所有信息,包括从 HTML 表格用 POST 方法或 GET 方法传递的参数、cookie 和用户认证。Request 对象使您能够访问客户端传送给伺服器的二进制数据。 Request 的语法 : Request[. 集合 | 属性 | 方法 ]( 变数 ) 在这里作者将挑选一些常用的对象语法进行分析 1、Form Form 集合通过使用 POST 方法的表格检索邮送到 HTTP 请求正文中的表格元素的值。 语法 Request.Form(element)[(index)|.Count] 参数 element 指定集合要检索的表格元素的名称。 index 可选参数,使用该参数可以访问某参数中多个值中的一个。它可以是 1 到 Request.Form(parameter).Count 之间的任意整数。 Count 集合中元素的个数 Form 集合按请求正文中参数的名称来索引。Request.Form(element) 的值是请求正文中所有 element 值的数组。通过调用 Request.Form(element).Count 来确定参数中值的个数。如果参数未关联多个值,则计数为 1。如果找不到参数,计数为 0。要引用有多个值的表格元素中的单个值,必须指定 index 值。index 参数可以是从 1 到 Request.Form(element).Count 中的任意数字。如果引用多个表格参数中的一个,而未指定 index 值,返回的数据将是以逗号分隔的字元串。 可以使用重述符来显示表格请求中的所有数据值。例如,用户通过指定几个值填写表格,见下图。 对于 hobby 参数,您可以使用下面的脚本检索这些值。 < > < head>< title>< /title>< /head> < body> < p> 请填写你的爱好 < /p> < form method="POST" action="form.asp"> < p>< input type=text name=hobby size="20">< br> < input type=checkbox name=hobby value=" 足球 "> 足球 < input type=checkbox name="hobby" value=" 桌球 "> 桌球 < /p> < p>< input type=submit value=" 传送 " name=B1>< input type=reset value=" 重填 " name="B2">< /p> < /form> < % For Each i In Request.Form("hobby") Response.Write i & "< BR>" Next %> < /body>< /> 将以上代码剪贴到记事簿中(注意将“< ”后面的空格去掉),保存为 form.asp 档案并运行,request 对象可以根据你在 form 中填入或选择元素内容的不同将元素逐个显示出来。 当然使用 For...Next 循环也可以生成同样的输出,如下所示 : < % For i = 1 To Request.Form("hobby").Count< Response.Write Request.Form("hobby")(i) & "< BR>"Next< %> 方法 【ASP中,Request 对象获取数据的3种方法:】 1.Request.Form:获取以POST方式提交的数据(接收Form提交来的数据); 2.Request.QueryString:获取地址栏参数(以及以GET方式提交的数据) 3.Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。 而且有时候也会得到不同的结果。如果你仅仅是需要Form中的一个数据,但是你使用了Request而不是Request.Form,那么程式将在QueryString、ServerVariable中也搜寻一遍。如果正好你的QueryString或者ServerVariable里面也有同名的项,你得到的就不是你原本想要的值了。 比较 【asp中,request.form与request.querystring的比较】 1、对于post传值的方法,采用request.form接受,他的参数值不会在url中用明文方式显示,且长度不受限制,安全性相对较高; 2、get方法递交的表单或通过url传值采用request.querystring进行获值的方法,(1)参数值明码显示(2)长度受限;优点:(1)方便可以直接定义一个url就可以传值;作用:常用与资料库中的文章id传值,进行资料库的查询; 属性 request.params是一个集合,它依次包括request.querystring、request.form、request.cookies和request.servervariables。 如果要在两个页面传递数据的话,只能用request.querystring、request.form、request.cookies Request.Params 会在 QueryString、Form、Server Variable 以及 Cookies 找数据, 他首先在 QueryString 集合查找数据,如果在 QueryString 找到数据,就返回数据,如果没有找到就去 Form 集合中查找数据,找到就返回,否则在往下一下个集合查找数据。 Request.Params["id"] Request.Form["id"] Request.QueryString["id"] Request.QueryString["id"] Request.Params是所有post和get传过来的值的集合,Request.Form是取post传值, Request.QueryString是get传过来的值
Request对象的主要方法有哪些
Request对象的主要方法:
setAttribute(String name,Object):设置名字为name的request 的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request 对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有 Cookie 对象,结果是一个Cookie 数组
getCharacterEncoding() :返回请求中的字符编码方式
getContentLength() :返回请求的 Body的长度
getHeader(String name) :获得HTTP协议定义的文件头信息
getHeaders(String name) :返回指定名字的request Header 的所有值,结果是一个枚举的实例
getHeaderNames() :返回所以request Header 的名字,结果是一个枚举的实例
getInputStream() :返回请求的输入流,用于获得请求中的数据
getMethod() :获得客户端向服务器端传送数据的方法
getParameter(String name) :获得客户端传送给服务器端的有 name指定的参数值
getParameterNames() :获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实
例
getParameterValues(String name):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString() :获得查询字符串
getRequestURI() :获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的 IP 地址
getRemoteHost() :获取客户端的名字
getSession([Boolean create]) :返回和请求相关 Session
getServerName() :获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性
详解AJAX核心中的XMLHttpRequest对象
XMLHttpRequest 对象是AJAX功能的核心 要开发AJAX程序必须从了解XMLHttpRequest 对象开始
了解XMLHttpRequest 对象就先从创建XMLHttpRequest 对象开始 在不同的浏览器中创建XMLHttpRequest 对象使用不同的方法
先看看IE创建XMLHttpRequest 对象的方法(方法 )
var xml = new ActiveXObject( Msxml XMLHTTP );
//使用较新版本的 IE 创建 IE 兼容的对象(Msxml XMLHTTP)
var xml = new ActiveXObject( Microsoft XMLHTTP );
//使用较老版本的 IE 创建 IE 兼容的对(Microsoft XMLHTTP)
而 Mozilla Opera Safari 和大部分非IE的浏览器都使用下面这种方法(方法 )创建XMLHttpRequest 对象
var xml = new XMLHttpRequest();
实际上Internet Explorer 使用了一个名为 XMLHttp 的对象 而不是 XMLHttpRequest 对象 而 Mozilla Opera Safari 和 大部分非 Microsoft 浏览器都使用的是后者(下文统称 XMLHttpRequest 对象) IE 开始也开始使用XMLHttpRequest 对象了
在创建 XMLHttpRequest 对象的时候如果不同的浏览器使用了不正确的方法浏览器都将会报错 并且无法使用该对象 所以我们需要一种可以兼容不同浏览器的创建XMLHttpRequest 对象的方法
创建兼容多浏览器的 XMLHttpRequest 对象方法
var xml = false; //创建一个新变量 request 并赋值 false 使用 false 作为判断条件 它表示还没有创建 XMLHttpRequest 对象 function CreateXMLHttp(){try{xml = new XMLHttpRequest(); //尝试创建 XMLHttpRequest 对象 除 IE 外的浏览器都支持这个方法 }catch (e){try{xml = new ActiveXObject( Msxml XMLHTTP ); //使用较新版本的 IE 创建 IE 兼容的对象(Msxml XMLHTTP)}catch (e){try{xml = new ActiveXObject( Microsoft XMLHTTP ); //使用较老版本的 IE 创建 IE 兼容的对象(Microsoft XMLHTTP) }catch (failed){xml = false; //如果失败则保证 request 的值仍然为 false }}}return xml;}判断是否创建成功就很简单了
if (!xml){//创建XMLHttpRequest 对象失败!}else{//创建成功!}
创建好了XMLHttpRequest 对象我们再来看看这个对象的方法 属性以及最重要的onreadystatechange事件句柄吧
方法
open() 说明 初始化 HTTP 请求参数 例如 URL 和 HTTP 方法 但是并不发送请求
abort() 说明 取消当前响应 关闭连接并且结束任何未决的网络活动
getAllResponseHeaders() 说明 把 HTTP 响应头部作为未解析的字符串返回
getResponseHeader() 说明 返回指定的 HTTP 响应头部的值
send() 说明 发送 HTTP 请求 使用传递给 open() 方法的参数 以及传递给该方法的可选请求体
setRequestHeader() 说明 向一个打开但未发送的请求设置或添加一个 HTTP 请求
属性
readyState 说明 HTTP 请求的状态
responseText 说明 目前为止为服务器接收到的响应体(不包括头部) 或者如果还没有接收到数据的话 就是空字符串
responseXML 说明 对请求的响应 解析为 XML 并作为 Document 对象返回
status 说明 由服务器返回的 HTTP 状态代码
statusText 说明 这个属性用名称而不是数字指定了请求的 HTTP 的状态代码
onreadystatechange 是每次 readyState 属性改变的时候调用的事件句柄函数
下面从发送请求并处理请求结果的过程来理解一下XMLHttpRequest 对象吧
发送请求之前自然就是生成一个XMLHttpRequest 对象 代码上面有了就不多写了
生成一个XMLHttpRequest 对象
var xml = CreateXMLHttp();
创建好XMLHttpRequest 对象了 那我们要送请求到哪个网站呢 就选择博客园首页的RSS吧 那怎么设置我要请求的网站地址呢 使用open()方法
open(method url async username password)
该方法有 个参数 具体什么意思可以看这里 我们用的就是这个了
xmlHttp open( get true);
get参数表示用get方法 第二个自然就是目标地址 博客园首页 第三个就是表示是否异步了 我们当然使用true了 具体的参数说明还都可以到上面看了
好了 目标定好了 怎么发送呢 用send()方法?
send(body) send()方法只有一个参数 表示DOM对象 这个DOM对象需要说明的内容很多 下次说 今天我们只要写
xml send();就可以了 好了 发送了 那怎么处理返回的结果呢 这个时候就用到XMLHttpRequest 对象最重要的东西了 那就是onreadystatechange事件句柄 什么意思呢 那就需要说明一下XMLHttpRequest 对象的readyState了 readyState有 种状态 分别用数字的 到 来表示
状态 名称 描述 Uninitialized 初始化状态 XMLHttpRequest 对象已创建(未调用open()之前)或已被 abort() 方法重置 Open open() 方法已调用 但是 send() 方法未调用 请求还没有被发送 Sent Send() 方法已调用 HTTP 请求已发送到 Web 服务器 未接收到响应 Receiving 所有响应头部都已经接收到 响应体开始接收但未完成 Loaded HTTP 响应已经完全接收
但是需要注意的是 onreadystatechange事件句柄不同的浏览器能处理的状态并不一致 IE和FireFox能处理 到 而Safari能处理 到 的状态 Opera 能处理 两中状态 的状态基本没什么用 因为创建了XMLHttpRequest 对象后都会马上调用open() 方法 这时候状态就变成 了 当然除非你要判断对象是否已经被 abort() 取消 可是这样的情况依然很少 大部分情况下判断是不是 (已经接受完成)这个状态就够了
好了 明白了readyState有 种状态了 那处理返回结果就是看状态变更到不同的状态我们做不同的处理就可以了 怎么告诉XMLHttpRequest 对象状态变化时让谁来处理这个变化呢 有两种写法 一种是用匿名方法 另一种是指定方法 其实只是不同的写发 作用都一样 看下代码
xml onReadyStateChange = function (){//处理状态变化的代码}//或者xml onReadyStateChange = getResult;function getResult(){///处理状态变化的代码}
顺便说一下 句柄的名称比较长 可以这样记忆 on ReadyState Change 表示在读取状态改变时请求发送了 也指定处理方法了 怎么获取返回的内容呢 有responseText和responseXML两个属性可供使用 responseXML是返回对象 需要再解析 后面再说 这里先用responseText 看看返回什么
alert(xml responseText); //看看是不是返回了首页的HTML代码啊 是你就成功了
整个过程是 创建XMLHttpRequest 对象 > 指定发送地址及发送方法 > 发送请求 > 指定处理方法并处理返回结果 但是需要注意 我们正常的思路理解是这样的 可是onreadystatechange事件句柄指定处理方法需要在发送之前就指定好 否则无法处理状态变化事件
所以我们应该按照下面的流程来记忆 创建XMLHttpRequest 对象 > 指定发送地址及发送方法 > 指定状态变化处理方法 > 发送请求 请求发送后状态变化了就会自动调用指定的处理方法 好了 看看完成的代码吧
完成的代码
var xml = false; //创建一个新变量 request 并赋值 false 使用 false 作为判断条件 它表示还没有创建 XMLHttpRequest 对象 function CreateXMLHttp(){try{xml = new XMLHttpRequest(); //尝试创建 XMLHttpRequest 对象 除 IE 外的浏览器都支持这个方法 }catch (e){try{xml = new ActiveXObject( Msxml XMLHTTP ); //使用较新版本的 IE 创建 IE 兼容的对象(Msxml XMLHTTP)}catch (e){try{xml = new ActiveXObject( Microsoft XMLHTTP ); //使用较老版本的 IE 创建 IE 兼容的对象(Microsoft XMLHTTP) }catch (failed){xml = false; //如果失败则保证 request 的值仍然为 false }}}return xml;}xml = CreateXMLHttp();xml open( get true);xml onReadyStateChange = getResult;xml send();function getResult(){if(xml readyState == ){alert(xml responseText);}}
看似一切都OK了 可是有没有想过 如果HTML代码在网络传输过程中出错了 或者我们指定的地址失效会怎么样呢 这个时候就需要用到status属性 即由服务器返回的 HTTP 状态代码 xml status 等于 时表示传输过程完整没有错误 具体的HTTP状态代码什么意思可以到W C组织网站上看看 地址l
把getResult()方法写成下面这样我觉的就真的OK了
function getResult(){if(xml readyState == && xml status == ){alert(xml responseText);}}
lishixinzhi/Article/program/Java/JSP/201311/19144
requests发送请求成功后,会返回一个request类的对象是正确的吗?
不对的,应该是返回一个response对象
requests发送请求成功后,会返回一个response类的对象,该对象包含了具体的响应信息,如状态码、响应头、响应内容等
Request 对象 错误 'ASP 0104 : 80004005' 是什么回事?
系统限制了上传大小,操作不允许。
原因:
在使用Windows2003作为web服务器的时候,当提交较多内容或上传较大文件时会出现如下错误:Request 对象 错误 \\’ASP 0104 : 80004005\\’ 不允许操作。也就是我们这里说的ASP“0104:0x80004005”错误,其实这是微软在2003系统,准确地说是IIS6里面对安全的一个考虑,它对request的大小作了限制,最大为204800字节,也就是200K,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击。
技术背景:
在 IIS 6.0 中, AspMaxRequestEntityAllowed 属性指定了一个 ASP 请求(Request)可以使用的最大字节数. 如果 Content-Length 头信息中包含的请求长度超过了 AspMaxRequestEntityAllowed 的值, IIS 将返回一个 403 错误信息.
这个属性值与 MaxRequestEntityAllowed 相似, 但是是针对 ASP 请求的. 假如你知道自己的 ASP 应用只需要处理很少的请求数据, 你可以在 World Wide Web Publishing Service (WWW 发布服务)层级设定全局的 MaxRequestEntityAllowed 属性为 1MB, 并单独设定 AspMaxRequestEntityAllowed 为一个较小的值.
解决办法:
方法一:
1、先打开Internet 信息服务(IIS)管理器;
(本地计算机 )---- 属性 ----允许直接编辑配置数据库(N)
一定要勾选“允许直接编辑配置数据库(N)”
2、然后在服务里关闭iis admin service服务;
3、找到windows\\system32\\inesrv\\下的metabase.xml,用计事本打开metabase.xml,找到ASPMaxRequestEntityAllowed把他修改为需要的值,默认为204800,把它修改为51200000(50M);
4、然后重启iis admin service服务。
方法二:
1、新建一个文本文件;
set providerObj=GetObject("winmgmts:/root/MicrosoftIISv2")
set vdirObj=providerObj.get("IIsWebVirtualDirSetting=’W3SVC/1/ROOT’")
Ws cript.Echo "Before: " & vdirObj.AspMaxRequestEntityAllowed
vdirObj.AspMaxRequestEntityAllowed=51200000
vdirObj.Put_()
Ws cript.Echo "Now: " & vdirObj.AspMaxRequestEntityAllowed
2、将以上内容保存为change.vbs;
3、在cmd命令行界面下执行
cs cript [path]change.vbs
方法三:
1、下载工具Internet Information Services (IIS) 6.0 Resource Kit Tools,并安装,记得自定义一下,里面有一些用不到,这里只用到Metabase Explorer;
2、开始-程序菜单-IIS Resources-Metabase Explorer,运行Metabase Explorer;
3、修改(local)\\LM\\W3SVC\\AspMaxRequestEntityAllowed属性,修改为较大的值,如51200000(50M)。
在编辑文件前如果没有停止IIS服务,则无法保存修改后的文件。
若你想在iis运行的时候修改其配置文件,则打开iis管理器,打开internet信息服务属性面板,钩选“允许直接编辑配置数据库,允许在iis运行时编辑iis配置数据库配置文件。
原因: IIS6.0 禁止上传超过 200kB 的文件
因此你需要修改 IIS 的默认设置
然后在服务里关闭iis admin service服务
找到windows\system32\inesrv\下的metabase.xml,
打开,找到ASPMaxRequestEntityAllowed
把他修改为需要的值,默认为204800,
即200K 然后重启iis admin service服务
把它修改为51200000(50M)
如果你是自己的服务器,你可以进行以上操作,
如果你是买的空间,请与空间商联系!
当写入SQL数据库的文字或是图片大于200K的时候会出现这种错误,
第一步,打开IIS,点击计算机名,然后 点停止;
第二步,服务---找到 Application Host Helper Service 点停止;
第三步,进入 C:\Windows\System32\inetsrv\config\schema 文件夹下 IIS_schema.xml
用记事本打开IIS_schema.xml,找到“maxRequestEntityAllowed” 将后面的 defaultValue=“200000” 数值改大,就可以了
第四步,把上面两个停止的服务重新启动,再次写入数据,一切OK!
!!注意!!:用记事本进行编辑IIS_schema.xml文件的时候注意文件是“只读”属性,要把只读前的小勾去掉,如果去只读操作失败,点右键--管理员取得所有权,就可以保存了;
request和response对象的作用和相互关系是怎样的
(提问的时候,希望能把问题描述的详细一点,如果你想得到别人详细的回答,首先你的问题要描述的清楚,你的问题可能会有n种情况,我挑一种可能的情况回答。 )
我理解你说的request 和 response是指J2EE的。
在J2EE中,如果客户端通过HTTP访问Web容器(比如Tomcat Weblogic等),在Web容器的内部就会产生一个request对象,该对象代表一个请求,通过该对象你可以获取 发起请求的IP地址,请求路径,post或者get提交的参数等等。也就是说request对象代表和请求所有相关的信息。当你请求处理结束了,request对象也就销毁掉。
Web服务器接收到处理请求,并处理完后,需要将处理的结果返回给客户端,这时候通过 response对象表示,response表示响应给客户端的内容,比如客户端页面是否缓存、Cookie内容、客户端是否要跳转别页面等。也就是response就是服务器 响应 给客户端信息的对象。
简述C#中request对象和response对象的功能?
首先Request和Response是ASP.NET中为了响应客户端请求所需要并创建的对象实例他们的类型分别是HttpRequest,HttpResponse 其中Request包含了所有的客户端请求的信息.比如Cookie,HttpMethod,QueryString,Form等
而Response中包含的是对客户端请求的响应,即发送至客户端的信息。
request:使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值。具体说明查看msdn中关于System.Web.HttpRequest类
response:在 Web 应用程序运行时,ASP.NET 将维护有关当前应用程序、每个用户会话、当前 HTTP 请求、请求的页等方面的信息。具体说明查看msdn中关于System.Web.HttpResponse类
这些都是msdn里粘贴出来的。只要你在平时的练习或者实际项目实战开发过程中,自己就能大致总结出这两个属性的使用了。
request:使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值。具体说明查看msdn中关于System.Web.HttpRequest类
response:在 Web 应用程序运行时,ASP.NET 将维护有关当前应用程序、每个用户会话、当前 HTTP 请求、请求的页等方面的信息。具体说明查看msdn中关于System.Web.HttpResponse类
这些都是msdn里粘贴出来的。只要你在平时的练习或者实际项目实战开发过程中,自己就能大致总结出这两个属性的使用了。