您好,欢迎访问三七文档
第3讲JSP内置对象为了简化页面开发复杂性,JSP提供了一些可在脚本中使用的内置对象(内置对象不需要在使用它们之前进行声明)。使用这些对象可以使用户更容易收集客户端发送请求的信息,并响应客户端的请求以及存储客户信息,从而大大简化JSP程序开发的复杂性。因为在JSP中使用的惟一脚本语言为Java,所以每个一个内置对象都对应一个特定的Java类或接口。JSP容器提供了以下几个内置对象,它们是:request、response、out、session、application、config、pageContext、page、exception和cookie。3.1request请求对象request对象包含的是客户端向服务器发出请求内容,即该对象封装了用户提交的信息。通过这个对象可以了解到客户端向服务器发出请求的内容和客户端所要求的资料。request对象在服务器启动时会自动创建,是javax.servlet.HttpServletRequest接口的类的一个实例。当客户端通过HTTP协议请求一个JSP页面时,JSP容器就会将请求信息包装到request对象中,即创建request对象;当JSP容器完成该请求后,request对象就会被撤销。客户端发生的请求信息包括请求的头信息(Header)、系统信息(比如编码方式)、请求的方式(比如GET或POST)、请求的参数名称、参数值、获取cookie、访问请求行元素和访问安全信息等。这时,可以采用request相关方法获取这些信息。3.1request请求对象表3-1request对象常用方法课堂案例1—使用request获取简单表单信息学习request对象获取简单HTML表单信息的方法。案例学习目标request对象getParameter方法、应用getParameter方法获取HTML页面中文本框表单元素和按钮表单元素的提交信息。案例知识要点3.2response对象response对象是javax.servlet.ServletResponse接口中,一个针对HTTP协议和实现的子类。response对象是表示服务器对请求的响应的HttpServletResponse对象,包含服务器向客户机做出信息的应答信息。response对象响应信息包含的内容包括:MIME类型的定义、保存的Cookie、连接到Web资源的URL等。当服务器处理完客户请求时,往往需要发送一些信息给客户端浏览器,或者需要重定向到其它页面。response对象和request对象功能恰好相反,request对象封装的是客户端提交信息,而response对象封装的是返回客户端的信息。response对象的作用域和request对象相同,都是在当前页面。如果超出了这个范围,就会失效。response方法有三类,分别为设定表头方法、设定响应状态码、重定向方法。3.2response对象在动态网站的某些操作中,有时需要从一个页面转向另外一个页面,如用户登录成功。要达到页面重定向的效果,可以采用前面学习的动作指令jsp:forward,也可以采用resposne对象的sendRedirect(URL,url)。sendRedirect()语法格式如下所示:publicabstractvoidsendRedirect(Stringurl)JSP页面还可以用response对象的sendError方法来指明一个错误状态。该方法接受一个错误码以及一个可选的出错消息,该消息将在被返回给客户。3.2.1response重定向3.2response对象当客户访问一个页面时,会发送一个HTTP报头到服务器。这个HTTP请求包括请求行、HTTP头和信息行。同样,HTTP响应也包括一些HTTP头,另外使用HTML中的META标签,也可以实现对HTTP报头的操作。META标签是HTML语言HEAD部的一个辅助性标签,它位于HTML文档头部的HEAD标记和TITLE标记之间,它提供用户不可见的信息。META标签通常用来为搜索引擎定义页面主题,或者是定义用户浏览器上的cookie、网站作者、设定页面格式、标注内容提要和关键字,还可以设置页面的自动刷新时间间隔级。在JSP页面中,可以通过Response对象相应方法,动态地添加新的HTTP响应标题值,这些值会被发送到浏览器。如果添加的HTTP报头已经存在,则新的值会覆盖原来的标题值。下面是一些常用的修改报头方法:控制缓存和有效期;定制HTTP报头;指定MIME类型。3.2.2response的HTTP文件头3.2response对象在把输出结果传送到浏览器时,浏览器必须启动相应的应用程序来处理该文档。为了标识文档的类型,服务器通过HTTP报头的Content-Type指定中。例如,要发送一个MicrosoftExcel文件到客户端,那么此时的MIME类型就是“application/vnd.ms-excel”。在大多数实际情况中,当浏览器接收到这个文件后,会启用Execl来进行处理。在JSP中,设定MIME类型的方法是通过Response对象的setContenType()方法。每个MIME类型都由两部分组成:前半部分为数据的类别,后半部分与文档的扩展名相关,为处理数据的应用程序。表3-1列出了常见的MIME类型。3.2.3response动态响应contentType属性表3-2MIME类型文档类型MIME类型超文本标记语言文本text/html普通文本text/plainRTF文本application/rtfGIF图形image/gifJPEG图形image/jpegMPEG文件video/mpegTAR文件application/x-tarXML文件text/xmlWord文件application/x-msword3.2.3response动态响应contentType属性3.2response对象表3-3response对象常用方法课堂案例2—使用response学习response对象sendRedirect、setHeader、setContentType方法的使用。案例学习目标sendRedirect方法及其使用场合,response刷新页面的方法及其使用场合,setContentType方法及其使用场合、应用setContentType提示保存文件。案例知识要点3.3session会话对象session对象是与请求相关的HttpSession对象,它封装了属于客户会话的所有信息。session对象在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。session对象的Id是指当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个字符类型的Id号,JSP引擎同时将这个Id号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端将该客户的session对象取消,服务器与该客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。3.3session会话对象表3-4session对象常用方法课堂案例3—使用session学习session对象保存request对象获取的表单信息的方法。案例学习目标利用request对象获取表单信息、利用session保存获取的表单信息及其应用场合。案例知识要点3.4application全局对象application对象提供了对javax.servlet.ServletContext对象的访问,用于多个程序或者多个用户之间共享数据。服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。3.4application全局对象表3-5application对象常用方法课堂案例4—使用application学习application对象制作站点计数器的方法。案例学习目标利用application的对象getAttribute和setAttribute制作站点计数器及其特点和应用场合。案例知识要点3.5cookie对象Cookie是Web服务器保存在用户硬盘上的一段文本,Cookie允许一个Web站点在用户的计算机上保存信息并且随后再将其取回。服务器读取Cookie的时候,只能够读取到这个服务器相关的信息。而且,浏览器一般只允许存放300个Cookie,每个站点最多存放20个,另外,每个Cookie的大小为4KB,根本不会占用多少空间。同时,Cookie是有时效性质的。例如,设置了Cookie的存活时间为1min,则1min后当前个Cookie就会被浏览器删除。3.5cookie全局对象表3-6cookie与session比较3.5cookie对象Cookie基本操作1.创建Cookie对象Cookiec=newCookie(username,liuzc);2.传送Cookie对象response.addCookie(c);3.读取Cookie对象Cookie[]c=request.getCookies();if(c!=null)for(intI=0;Ic.length;I++)if(username.equals(c[I].getName()))out.println(c[I].getValue());4.设置Cookie对象有效时间c.setMaxAge(3600);课堂案例5—使用cookie学习Cookie对象制作站点计数器的方法。案例学习目标Cookie对象各种方法的使用、利用Cookie制作站点计数器及其特点和应用场合。案例知识要点3.6out对象out对象主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区,缓冲区默认值一般是8KB,可以通过页面指令page来改变默认值。在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。out对象被封装成javax.servlet.JspWriter接口,out变量是从PageContext对象初始化而获得的,out对象的作用域是page。3.6out对象表3-7out对象常用方法课堂案例6—使用out学习out对象各种常用方法的使用。案例学习目标out对象的常用方法及其在JSP程序中的基本应用。案例知识要点3.7内置对象拾遗获取会话范围的pageContext对象读取web.xml配置信息的config对象应答或请求的page对象获取异常信息的exception对象
本文标题:JSP内置对象
链接地址:https://www.777doc.com/doc-5736484 .html