您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > ch3-JSP内置对象
JAVAWEB应用开发与实践第3章:JSP内置对象梁胜彬乔保军主编清华大学出版社JSP内置对象本章要点:request对象response对象page对象pageContext对象out对象session对象application对象config对象exception对象2清华大学出版社JSP内置对象内置对象类型作用域requestjavax.servlet.HttpServletRequestrequestresponsejavax.servlet.HttpServletResponsepagepagejava.lang.Object(相当于this关键字)pagepageContextjavax.servlet.jsp.PageContextpagesessionjavax.servlet.http.HttpSessionsessionapplicationjavax.servlet.ServletContextapplicationoutjavax.servlet.jsp.JspWriterpageconfigjavax.servlet.ServletConfigpageexceptionjava.lang.Throwablepage3清华大学出版社1.REQUEST对象request对象:当客户端向Web服务器发送请求获取某种资源,此时相当于向Web服务器发送了一个HTTP请求(request)。一个HTTP请求报文一般包括四部分:请求行(RequestLine)、请求首部(Header)、空行(BlankLine)和请求数据(Body)等。GET/HTTP/1.1Accept:*/*Accept-Language:zh-cnAccept-Encoding:gzip,deflateUser-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR2.0.50727;.NETCLR3.0.04506.648;.NETCLR3.5.21022)Host:清华大学出版社请求的第一个首部,Host指出请求的目的地,Connection通常将浏览器操作设置为Keep-Alive。User-Agent代表宫客户端浏览器接受的类型Get类型请求行1.REQUEST对象方法说明ObjectgetAttribute(Stringname)获得name的属性值,若不存在则返回nullEnumerationgetAttributeNames()返回一个枚举类型的包含request对象所有属性名称的集合StringgetCharacterEncoding()返回request请求体的字符编码intgetContentLength()获得HTTP请求的长度StringgetContentType()获得客户端请求的MIME类型StringgetContextPath()获得上下文的路径,即当前Web应用的根目录StringgetHeader(Stringname)获得HTTP协议的文件头信息ServletInputStreamgetInputStream()得到请求体中一行的二进制流StringgetMethod()获得客户端请求的方法类型,一般为GET、POST、TRACE等StringgetParameter(Stringname)获得指定参数name的参数值String[]getParameterValues(Stringname)返回包含参数name的所有值的数组StringgetProtocol()返回请求所使用的协议及其版本5清华大学出版社1.REQUEST对象方法说明StringgetQueryString()获得查询字符串,该字符串在客户端以GET方式向服务器传送BufferedReadergetReader()以字符码的形式返回请求体StringgetRemoteAddr()返回客户端的IP地址StringgetRemoteHost()返回客户端的主机名StringgetScheme()返回请求所用的协议名称,如HTTP,HTTPS,FTP等StringgetServerName()获得服务器的名称,若没有设定服务器域名,则返回其IP地址intgetServerPort()返回服务器的端口号StringgetServletPath()获得请求JSP页面的名称booleangetSession()返回和当前客户端请求相关联的HttpSession对象booleanisSecure()判断客户机是否以安全的访问方式访问服务器voidremoveAttribute(Stringname)删除名称为name的request参数。voidsetAttribute(Stringname,Objectobj)设置一个名称为name的参数,并且其值为objvoidsetCharacterEncoding(Stringenc)设置请求信息的字符编码为enc6清华大学出版社1.REQUEST对象动手实践:创建一个表单请求页面:reqeust.jsp;创建一个显示客户端请求信息的页面:requestInfo.jsp;在requestInfo.jsp页面显示出客户端请求的表单域信息、IP地址、主机名、使用的协议、MIME类型等信息。目标:进一步熟悉表单的创建与使用(action属性);理解与掌握request对象各方法之用法;尽管HTTP协议是一种无状态的协议,但两个具有请求关系的页面之间可以通过request对象的setAttribute()与getAttribute()方法共享数据;通过本次实践,还能发现哪些问题,请列举并思考。7清华大学出版社2.RESPONSE对象当客户端向Web服务器发送请求后,Web服务器接受请求并进行相应的响应(response),一个HTTP响应报文包括状态行(StatusLine)、响应头(Header)、空行(BlankLine)和可选实体内容(Body)。HTTP/1.1200OKDate:Mon,22Mar201108:07:21GMTContent-Type:text/html;charset=UTF-8htmlhead/headbody!—网页主体内容,此处省略不再给出。--/body/html8清华大学出版社状态行响应头可选实体内容2.RESPONSE对象9清华大学出版社状态码说明状态码说明100继续404资源未找到101转换协议405方式不被允许200OK,成功406不接受的201已创建407需要代理验证202接受408请求超时203非权威消息409冲突204无内容410不存在205重置内容411长度必需206部分内容412先决条件失败300多个选择413请求实体太长301永久移动414请求URI太大302发现415不被支持的媒体类型303见其它500服务器内部错误304没有被改变501不能实现305使用代理502坏网关400坏请求503服务不能获得401未授权的504网关超时402必要的支付505HTTP版本不支持403禁用响应状态码2.RESPONSE对象方法说明voidaddCookie(Cookiecookie)给客户端添加一个Cookie对象,以保存客户端的信息voidaddDateHeader(Stringname,longvalue)添加一个日期类型的HTTP首部信息,覆盖同名的HTTP首部voidaddIntHeader(Stringname,intvalue)添加一个整型的HTTP首部,并覆盖旧的HTTP首部StringencodeRedirectURL(Stringurl)对使用的URL进行编译StringencodeURL(Stringurl)封装URL并返回到客户端,实现URL重写voidflushBuffer()清空缓冲区intgetBufferSize()取得缓冲区的大小StringgetCharacterEncoding()取得字符编码类型StringgetContentType()取得MIME类型LocalegetLocale()取得本地化信息ServletOutputStreamgetOutputStream()返回一个二进制输出字节流10清华大学出版社2.RESPONSE对象方法说明PrintWritergetWriter()返回一个输出字符流voidreset()重设response对象voidresetBuffer()重设缓冲区voidsendError(intsc)向客户端发送HTTP状态码的出错信息voidsendRedirect()重定向客户的请求到指定页面voidsetBufferSize(intsize)设置缓冲区的大小为sizevoidsetCharacterEncoding(Stringencoding)设置字符编码类型为encodingvoidsetContentLength(intlength)设置Content数据的大小为lengthvoidsetContentType(Stringtype)设置MIME类型voidsetDateHeader(Strings1,longl)设置日期类型的HTTP首部信息voidsetHeader(Strings1,Strings2)设置HTTP首部信息voidsetLocale(Localelocale)设置本地化为localevoidsetStatus(intstatus)设置状态码为status11清华大学出版社2.RESPONSE对象应用举例:使用setHeader()方法可以设置页面自动刷新,具体见下行代码。//设置页面每隔1秒自动刷新一次response.setHeader(Refresh,1);使用response对象的setHeader()方法设置页面自动跳转。//设置10秒后自动跳转到anotherPage.jspresponse.setHeader(Refresh,10;URL=anotherPage.jsp);使用response对象的sendRedirect()方法也可以实现页面直接跳转。response.sendRedirect(anotherPage.jsp);使用response对象禁用页面缓存。//禁用页面缓存response.setHeader(Cache-Control,no-cache);response.setHeader(Pragma,no-cache);response.setDateHeader(Expires,0);12清华大学出版社2.RESPONSE对象动手实践:使用response对象设置Cookie;使用request对象获取Cookie。目标:理解使用Cookie也可以在两个页面之间共享数据;掌握Cookie的相关方法如构造方法、setMaxAge()等;理解Cookie中保存的是一个“键/值”对;了解是不安全的,而且也可能被客户端禁用。13清华大学出版社3.PAGE对象page对象:page对象代表当前正在运行的JSP页面,或者可以认为page代表的是JSP页面被编译后的Servlet,因此类似Java语言中的this关键字。需要注意的是page对象只能在当前JSP页面范围内使用。14清华大学出版社3.PAGE对象方法说明classgetClass()获取page对象的类inthashCode()获取page对象的hash码booleanequals(Objectobj)判断此page对象是否与obj相等voidcopy(Objectobj)复制此page对象给objObjectclone()克隆此page对象StringtoString()把此page对象转换为字符串voidnotify()唤
本文标题:ch3-JSP内置对象
链接地址:https://www.777doc.com/doc-4814321 .html