第9章JSP的内置对象.ppt

上传人:本田雅阁 文档编号:2258158 上传时间:2019-03-12 格式:PPT 页数:46 大小:3.03MB
返回 下载 相关 举报
第9章JSP的内置对象.ppt_第1页
第1页 / 共46页
第9章JSP的内置对象.ppt_第2页
第2页 / 共46页
第9章JSP的内置对象.ppt_第3页
第3页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第9章JSP的内置对象.ppt》由会员分享,可在线阅读,更多相关《第9章JSP的内置对象.ppt(46页珍藏版)》请在三一文库上搜索。

1、第9章 JSP的内置对象,了解JSP内置对象的基本概念 学习和了解out对象、request对象、response对象、session对象、application对象、exception对象、config对象、page对象和pageContext对象的特点和应用. 能运用内置对象解决实际问题,教学目的,教学内容,内置对象(Implicit Objects)是一类特殊的对象,它们是JSP文件中不需要声明就可以使用的对象,也称它们为隐含对象。 这些对象包含某种特定的信息,如HTTP请求、响应等,通过它们可以帮助用户获取并使用这些信息。 由于内置对象是通过JSP容器创建和管理,用户无须考虑这些内置对

2、象是如何产生就可直接使用。从这一点来说,内置对象的出现,简化JSP页面的开发,提高了开发的便利性。,9.1 内置对象概述,9.1 内置对象概述,JSP的内置对象,out对象是javax.servlet.jsp.JspWriter的一个对象实例,表示一个输出流。通过out对象向客户端发送信息。 out对象的作用范围为page,即只在本JSP页面有效。,9.2 out对象,out对象的常见方法,9.2 out对象,void clear() 清除缓冲区的内容,但不写客户端 void clearBuffer() 清除缓冲区的当前内容,写客户端 void close() 关闭输出流,中止前数据写客户端

3、void flush() 强制输出缓冲区的数据,先写客户端 boolean isAutoFlush() 判断缓冲区是否是具有强制输出autoFlush的功能,有返回true,否则返回false。 int getBufferSize() 返回缓冲区的大小。 int getRemaining() 返回缓冲区中没有占用的空间 void newLine() 输出一新行 void print() 有一个参数,参数可以是boolean, char, char, double, float ,int,long,Object, String 中的任何一种。该方法输出信息 void println() 有一个参

4、数,参数类型同print()。该方法实现换行输出信息,例9.1 out对象实现表格输出。代码见JSP9-1.jsp,运行结果见下图.,9.2 out对象,在JSP中,在一次HTTP请求中,用内置对象request对象封装由客户传递给WEB服务器的数据。 request对象取决于javax.servlet.ServletRequest类的子类javax.servlet.http.HttpServletRequest。 request对象可以获取客户端浏览器的header头请求、Cookies信息段请求和 Session会话请求。,9.3 request对象,要获取客户发送的具体信息,需调用req

5、uest对象的相应方法来实现。request对象的常见方法:,9.3 request对象,Object getAttribute(String):获取请求指定属性名的值 Enumeration getAttributeNames():返回request对象包含的属性名 void setAttribute(String,Object):设置指定属性的值 String getContentLength():获取用户提交信息的整个长度 Cookie getCookies():获取请求的信息段 String getParameter(String):获取请求指定参数的值 Enumeration get

6、ParameterNames():获取请求中参数的名称,9.3 request对象,String getParameterValues(String):返回特定参数对应的值 String getHeader(String):获取请求的头信息 Enumeration getHeaderNames():获取请求的头名字的一个枚举 String getMethod():获取请求的HTTP方法(如get、post、put) String getPathInfo():获取请求的URI的servlet路径 String getProtocol():返回请求中的协议和版本 String getQuerySt

7、ring():获取请求的查询字符串,用于用户以get方法发送,9.3 request对象,String getRomoteUser():获取创建请求对象用户的名字 String getRomoteHost():返回请求代理的服务器名 String getRomoteAddr():返回接受请求的服务器的IP地址 String getRequestedSessionId():获取请求的特定会话编号 String getServerName():返回接受request请求的服务器名 int getServetPost():返回接受request请求的服务器端口号 String getSevletPa

8、th():获取对应触发servlet的request对象URI HttpSession getSession(boolean):获取request对象相连的合法session。布尔参数是一个可选项,如果参数为true或无参数,则为请求创建一个新的会话session。,例9.2 一个request对象的简单应用,获取用户提交的信息。JSP9-2.jsp定义一个表单,将表单数据提交给JSP9-3.jsp。,9.3 request对象,response对象表示HTTP响应数据,它可以将服务器处理用户请求request的结果返回给用户。 JSP中将这些服务器响应用户请求的数据封装成为一个respons

9、e对象。,9.4 response对象,从本质上来说,response对象是实现javax.servlet.ServletResponse接口的实例,是由JSP容器生成。可对客户的请求做出动态的响应:向客户端发送数据(如HTTP文件头信息)、实现客户端转向其他资源、定时刷新、与Cookie相关的操作(如刷新、保存时间操作等)。 response的作用域为page,表示对当前页面有效。,9.4 response对象,response对象的常见方法,9.4 response对象,void addCookie(Cookie):添加一个Cookie对象,用来保存客户端的用户信息 void addHea

10、der(String,String):添加一个指定HTTP头名以及对应的值 boolean containsHeader(String):检查响应信息是否包括指定名字的HTTP头 String encodeRedirectURL(String):在sendRedirect方法内封装特定的URL,如果封装没有必要,返回无变化的URL。,9.4 response对象,String encodeURL(String):使用Session ID编号来封装URL,如果封装不必要,返回无变化的URL void sendError(int,String):用特定的状态码和默认提示信息返回客户端一个错误的响应

11、信息;如果存在第二个参数,则用定义的信息取代默认的提示信息; void sendRedirect(String):临时给客户端发送一个跳转到指定的URL的响应 void setDateHeader(String,long):增加一个名-日期值对应的HTTP头,9.4 response对象,void setHeader(String,String):增加一个名-值对应的HTTP头 void setContentType(String):设置MIME类型 void setIntHeader(String,String):增加一个名-整数值对应的HTTP头 void setStatus(int):设

12、置响应的状态代码,response对象作为服务器返回HTTP响应的代表,通常与out对象和request对象结合可以实现输入/输出信息的控制。 request对象获取客户请求信息(输入),out对象和response对象结合实现响应客户(输出)。与out对象直接访问输出流的不同,response对象是向客户端发送信息,根据不同的处理对客户端进行动态响应。,9.4 response对象,response设置HTTP头信息与添加Cookie response对象有两个方法可以动态设置HTTP头信息。它们是 setHeader(String head,String value) addHeader(

13、String head,String value)。 这两个方法可以动态添加HTTP响应头和对应的值。 值得注意的是,如果响应头已经存在,则后添加的响应头可以覆盖原来的内容。,9.4 response对象,Cookie是服务器保存在客户端中的一小段数据信息,为服务器处理用户请求或追踪用户提供方便。 JSP页面通过调用response对象的addCookie(Cookie)方法增加Cookie。 使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此作出相应的设置。 例9.3 利用response对象设置Http文件头以及添加Cookie的应用实例。代码见JSP9-4.jsp.,

14、9.4 response对象,response对象的重定向 response对象通过sendRedirect(String)实现重定向的作用。从一个JSP页面跳转到由指定URL的另一个JSP页面。 response对象的重定向和的类似。但是二者有着明显的区别: response对象是为客户端实现的跳转,首先将文件的所有内容完成。然后实现跳转,在实现跳转时,浏览器上的地址栏会发生变化。不传递参数。 是为服务器端实现的跳转,发生跳转时,立即跳转到目标位置。在后面的内容将不会执行。另外,跳转发生时,浏览器的地址不会发生内容变化。但是可以传递信息。 例9.4 response对象的重定向应用实例。代码

15、 见JSP9-5.jsp.,9.4 response对象,JSP支持Session会话机制。 Session会话机制,客户访问WEB网站,服务器会为每一个登陆使用它的客户创建一个Session会话对象。在这个Session对象中记录了客户的相关信息。根据Session对象记录的信息,服务器可以实现对客户的跟踪。当前客户退出服务器的服务时,对应于该客户的Session对象就会注销。而实现客户与服务器交互的这样一个过程就称为Session。,9.5 session对象,JSP的Session对象就是在一次会话过程中创建的会话对象。从本质上说,Session对象是Servlet API的javax.

16、servlet.http.HttpSession接口的对象实例。在一个Session开始时,服务器端的Servlet容器就会创建一个HttpSession对象,即session对象,保存客户状态信息。不同的客户,Servlet容器会创建不同的HttpSession对象。,9.5 session对象,session对象的常见方法 long getCreationTime():返回session对象创建的时间 String getId():返回session对象的Session Id编号 long getLastAccessedTime():返回客户提交请求的最后时间 Object getValu

17、e(String):返回session的应用层指定名称的值 String getValueNames():返回session的应用层数据的名称 void invalidate():使session对象无效并释放资源,9.5 session对象,boolean isNew():判断是否是新创建的session void putValue(String,Object):赋值对象数据给session的应用层指定的名称 void removeValue(String):删除session的应用层指定名称的值 void setMaxInactiveInterval(int):设置Session处于不活动

18、状态的最大时间间隔 int getMaxInactiveInterval():返回Session处于不活动状态的最大时间间隔 Enumeration getAttributeNames():返回所有属性的名字,9.5 session对象,void setAttribute(String,Object):设置指定属性的值 Object getAttribute(String name) :返回指定名字的属性,如果该属性不存在,将会返回null void removeAttribute(String name):“删除指定的属性(包含属性名、属性值)。如果在有效时间内,用户做出了新的请求,那么服务

19、器就会将其看作一个新的用户,此时,服务器将创建一个新的Session,旧的Session信息将会丢失,9.5 session对象,session的销毁 客户关闭浏览器; 超过Session生存时间; 以及在服务器端调用invalidte()方法,强制使Session无效。通常用这种方式实现用户注销。,9.5 session对象,例9.5 设计一个用户身份验证的应用。作用是用户输入用户名和密码信息登陆网站,验证登陆信息,如果登陆信息正确,则显示欢迎界面,否则返回登陆界面。,9.5 session对象,登陆页面 JSP9-6.jsp,身份验证 JSP9-7.jsp,欢迎界面 JSP9-8.jsp,

20、用户注销 JSP9-9.jsp,application对象是服务器的Servlet容器为多个应用程序保存信息。application对象的范围更大,在同一个服务器中的多个应用程序共享一个application对象。application对象主要用于多个WEB应用或者多个用户之间共享数据。 当服务器关闭或重启动时,原有的application对象会被注销。 application对象是实现Servlet API的javax.servlet.ServletContext接口的实例对象。,9.6 application对象,application对象的常见方法 void setAttribute(S

21、tring,Object): 设置属性 Object getAttribute(String):返回指定属性的值 void removeAttribute(String):删除属性 Enumeration getAttributeNames():返回所有属性名 String getServerInfo():返回网络服务Servlet名字和版本,9.6 application对象,application对象的应用实例 例9.6 用application对象实现一个计数器。具体代码见JSP9-10.jsp,运行结果如下.,9.6 application对象,config对象可以获取服务器Servl

22、et的相关配置。 Servlet配置定义在对应web应用的WEB-INF目录下web.xml文件中。 简单点说,config对象是在一个servlet初始化时,Servlet引擎向它传递信息,具体包括servlet初始化时用的参数以及服务器的有关信息。 还可以利用config对象实现日志记录、以及重定向控制等功能。 config对象是实现javax.servlet.ServletConfig接口的实例对象,,9.7 config对象,config对象的常见方法 String getInitParameter(String):返回servlet的指定名称的初始化参数的值 Enumeration

23、getInitParameterNames():返回servlet的所有初始化参数的名字 ServletContext getServletContext():返回servlet的上下文 String getServletName():返回servlet对象实例的名称,9.7 config对象,config对象的应用实例 例9.7 一个config对象获取所有servlet的初始值的简单应用。具体的JSP代码见程序JSP9-11.jsp,Servlet部署见web.xml。,9.7 config对象,exception对象是java.lang.Throwable类的一个实例,表示运行时的异常。

24、exception对象用来处理JSP文件在执行时发生的错误和异常。 exception对象的常见方法 String getMessage():返回错误信息 void printStackTrace():以标准错误的形式输出一个错误和错误的堆栈 String toString():以字符串的形式返回一个对异常的描述,9.8 exception对象,JSP页面中错误调用与错误处理是一个重要的应用。通过exception对象可以追踪运行过程中存在的问题,从而做出相应的处理。 要错误处理的流程: 首先,在可能会出错的JSP页面中,需要page指令进行设置属性errorPage来指定错误处理的页面; 而

25、在错误处理页面中,要用page指令设置isErrorPage属性的值为“true”,通过这样的设置,才允许exception对象的应用。,9.8 exception对象,exception对象的应用实例 例9.8 设计一个登陆界面,如果用户名或密码名为空,转向错误处理页面进行错误处理。本应用由三个程序构成:(1)登陆界面程序,见JSP9-13.jsp(2)验证用户名或密码名是否为空,见JSP9-14.jsp;(3)错误处理的页面,见JSP9-15.jsp。,9.8 exception对象,注意:在例9.8中的应用中,如果运行的是默认配置的IE5.0以上浏览器,则并不会出现用户自定义的错误页面结

26、果。只会在浏览器中出现“500内部错误”。 这是因为IE默认设置中使用了友好HTTP错误信息导致。如果需要使用用户自定义的错误信息,需要将IE浏览器的“IE-Internet选项-高级-显示友好HTTP错误信息”选项信息取消,用户自定义的错误页面才可以使用。,9.8 exception对象,page对象是java.lang.Object的对象实例,它是JSP的实现类的实例,即JSP的Servlet处理当前请求的对象实例。 JSP文件会由Servlet容器在第一次运行时编译成Servlet类,每次运行会创建一个该类的对象,这个对象可以用page表示。page对象相当于是编译的Servlet中th

27、is引用的一个代名词。,9.9 page对象,pageContext对象是javax.servlet.jsp.pageContext类的一个对象实例。 该内置对象提供JSP页面上下文,表示JSP页面本身。它可以实现对JSP页面内所有的对象以及属性的管理和访问。,9.10 pageContext对象,pageContext对象的常见方法 Object getAttribute():返回与指定范围内名称有关的变量或null Object findAttribute(String):用来按照页面请求、会话以及应用程序范围的顺序实现对某个已经命名属性的搜索 void setAttribute(Stri

28、ng,Object):用来设置默认页面的范围或指定范围之中的已命名对象 void removeAttribute():用来删除默认页面范围或指定范围之中已命名的对象,9.10 pageContext对象,Exception getException():返回当前exception对象 ServletRequest getRequest():返回当前的request对象 ServletResponse getResponse():返回当前的response对象 ServletConfig getServletConfig():返回当前页面的servletConfig对象,如config对象 Se

29、rvletContext getServletContext():返回当前页面的上下文ServletContext对象,如application对象 HttpSession getSession():返回当前页面的session对象,9.10 pageContext对象,pageContext对象的应用实例 例9.8 一个pageContext简单应用实例。具体内容见JSP9-16.jsp,运行结果如下。,9.10 pageContext对象,JSP定义了九种内置对象,它们的含义、作用都有不同。 这些内置对象不同结合可以实现输入输出的控制、文件流的控制、会话管理以及日志以及错误处理、初始化参数的管理等多方面的应用。 九种内置对象各有各的作用域。 属于page范围的对象有out、response、page、pageContext、config以及exception。这些对象只对应用它们的页面有效; 属于request范围的对象有request。对于request对象在一次用户请求中有效。 属于session作用范围的对象有session 属于application范围的对象有application。,9.11 小结,-The End- 谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1