第9章JSP的内置对象.ppt

上传人:sccc 文档编号:4965944 上传时间:2023-05-26 格式:PPT 页数:46 大小:3.03MB
返回 下载 相关 举报
第9章JSP的内置对象.ppt_第1页
第1页 / 共46页
第9章JSP的内置对象.ppt_第2页
第2页 / 共46页
第9章JSP的内置对象.ppt_第3页
第3页 / 共46页
第9章JSP的内置对象.ppt_第4页
第4页 / 共46页
第9章JSP的内置对象.ppt_第5页
第5页 / 共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()关闭输出流,中止前数据写客户端void flush(

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

4、1out对象实现表格输出。代码见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对象,要获取客户发送的具体信息,需调用request对象的相应方法来实现。request对象的常见方法:,9.

5、3 request对象,Object getAttribute(String):获取请求指定属性名的值Enumeration getAttributeNames():返回request对象包含的属性名void setAttribute(String,Object):设置指定属性的值String getContentLength():获取用户提交信息的整个长度Cookie getCookies():获取请求的信息段String getParameter(String):获取请求指定参数的值Enumeration getParameterNames():获取请求中参数的名称,9.3 request

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

7、String getRomoteUser():获取创建请求对象用户的名字String getRomoteHost():返回请求代理的服务器名String getRomoteAddr():返回接受请求的服务器的IP地址String getRequestedSessionId():获取请求的特定会话编号String getServerName():返回接受request请求的服务器名int getServetPost():返回接受request请求的服务器端口号String getSevletPath():获取对应触发servlet的request对象URIHttpSession getSessi

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

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

10、ader(String):检查响应信息是否包括指定名字的HTTP头String encodeRedirectURL(String):在sendRedirect方法内封装特定的URL,如果封装没有必要,返回无变化的URL。,9.4 response对象,String encodeURL(String):使用Session ID编号来封装URL,如果封装不必要,返回无变化的URLvoid sendError(int,String):用特定的状态码和默认提示信息返回客户端一个错误的响应信息;如果存在第二个参数,则用定义的信息取代默认的提示信息;void sendRedirect(String):临时

11、给客户端发送一个跳转到指定的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):设置响应的状态代码,response对象作为服务器返回HTTP响应的代表,通常与out对象和request对象结合可以实现输入/

12、输出信息的控制。request对象获取客户请求信息(输入),out对象和response对象结合实现响应客户(输出)。与out对象直接访问输出流的不同,response对象是向客户端发送信息,根据不同的处理对客户端进行动态响应。,9.4 response对象,response设置HTTP头信息与添加Cookieresponse对象有两个方法可以动态设置HTTP头信息。它们是setHeader(String head,String value)addHeader(String head,String value)。这两个方法可以动态添加HTTP响应头和对应的值。值得注意的是,如果响应头已经存在,

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

14、个JSP页面跳转到由指定URL的另一个JSP页面。response对象的重定向和的类似。但是二者有着明显的区别:response对象是为客户端实现的跳转,首先将文件的所有内容完成。然后实现跳转,在实现跳转时,浏览器上的地址栏会发生变化。不传递参数。是为服务器端实现的跳转,发生跳转时,立即跳转到目标位置。在后面的内容将不会执行。另外,跳转发生时,浏览器的地址不会发生内容变化。但是可以传递信息。例9.4 response对象的重定向应用实例。代码 见JSP9-5.jsp.,9.4 response对象,JSP支持Session会话机制。Session会话机制,客户访问WEB网站,服务器会为每一个登

15、陆使用它的客户创建一个Session会话对象。在这个Session对象中记录了客户的相关信息。根据Session对象记录的信息,服务器可以实现对客户的跟踪。当前客户退出服务器的服务时,对应于该客户的Session对象就会注销。而实现客户与服务器交互的这样一个过程就称为Session。,9.5 session对象,JSP的Session对象就是在一次会话过程中创建的会话对象。从本质上说,Session对象是Servlet API的javax.servlet.http.HttpSession接口的对象实例。在一个Session开始时,服务器端的Servlet容器就会创建一个HttpSession对

16、象,即session对象,保存客户状态信息。不同的客户,Servlet容器会创建不同的HttpSession对象。,9.5 session对象,session对象的常见方法long getCreationTime():返回session对象创建的时间String getId():返回session对象的Session Id编号long getLastAccessedTime():返回客户提交请求的最后时间Object getValue(String):返回session的应用层指定名称的值String getValueNames():返回session的应用层数据的名称void invalid

17、ate():使session对象无效并释放资源,9.5 session对象,boolean isNew():判断是否是新创建的sessionvoid putValue(String,Object):赋值对象数据给session的应用层指定的名称void removeValue(String):删除session的应用层指定名称的值void setMaxInactiveInterval(int):设置Session处于不活动状态的最大时间间隔int getMaxInactiveInterval():返回Session处于不活动状态的最大时间间隔Enumeration getAttributeNa

18、mes():返回所有属性的名字,9.5 session对象,void setAttribute(String,Object):设置指定属性的值Object getAttribute(String name):返回指定名字的属性,如果该属性不存在,将会返回nullvoid removeAttribute(String name):“删除指定的属性(包含属性名、属性值)。如果在有效时间内,用户做出了新的请求,那么服务器就会将其看作一个新的用户,此时,服务器将创建一个新的Session,旧的Session信息将会丢失,9.5 session对象,session的销毁客户关闭浏览器;超过Session

19、生存时间;以及在服务器端调用invalidte()方法,强制使Session无效。通常用这种方式实现用户注销。,9.5 session对象,例9.5 设计一个用户身份验证的应用。作用是用户输入用户名和密码信息登陆网站,验证登陆信息,如果登陆信息正确,则显示欢迎界面,否则返回登陆界面。,9.5 session对象,登陆页面JSP9-6.jsp,身份验证JSP9-7.jsp,欢迎界面JSP9-8.jsp,用户注销JSP9-9.jsp,application对象是服务器的Servlet容器为多个应用程序保存信息。application对象的范围更大,在同一个服务器中的多个应用程序共享一个applic

20、ation对象。application对象主要用于多个WEB应用或者多个用户之间共享数据。当服务器关闭或重启动时,原有的application对象会被注销。application对象是实现Servlet API的javax.servlet.ServletContext接口的实例对象。,9.6 application对象,application对象的常见方法void setAttribute(String,Object):设置属性Object getAttribute(String):返回指定属性的值void removeAttribute(String):删除属性Enumeration get

21、AttributeNames():返回所有属性名String getServerInfo():返回网络服务Servlet名字和版本,9.6 application对象,application对象的应用实例例9.6 用application对象实现一个计数器。具体代码见JSP9-10.jsp,运行结果如下.,9.6 application对象,config对象可以获取服务器Servlet的相关配置。Servlet配置定义在对应web应用的WEB-INF目录下web.xml文件中。简单点说,config对象是在一个servlet初始化时,Servlet引擎向它传递信息,具体包括servlet初始化

22、时用的参数以及服务器的有关信息。还可以利用config对象实现日志记录、以及重定向控制等功能。config对象是实现javax.servlet.ServletConfig接口的实例对象,,9.7 config对象,config对象的常见方法String getInitParameter(String):返回servlet的指定名称的初始化参数的值Enumeration getInitParameterNames():返回servlet的所有初始化参数的名字ServletContext getServletContext():返回servlet的上下文String getServletName(

23、):返回servlet对象实例的名称,9.7 config对象,config对象的应用实例例9.7 一个config对象获取所有servlet的初始值的简单应用。具体的JSP代码见程序JSP9-11.jsp,Servlet部署见web.xml。,9.7 config对象,exception对象是java.lang.Throwable类的一个实例,表示运行时的异常。exception对象用来处理JSP文件在执行时发生的错误和异常。exception对象的常见方法String getMessage():返回错误信息void printStackTrace():以标准错误的形式输出一个错误和错误的堆

24、栈String toString():以字符串的形式返回一个对异常的描述,9.8 exception对象,JSP页面中错误调用与错误处理是一个重要的应用。通过exception对象可以追踪运行过程中存在的问题,从而做出相应的处理。要错误处理的流程:首先,在可能会出错的JSP页面中,需要page指令进行设置属性errorPage来指定错误处理的页面;而在错误处理页面中,要用page指令设置isErrorPage属性的值为“true”,通过这样的设置,才允许exception对象的应用。,9.8 exception对象,exception对象的应用实例例9.8 设计一个登陆界面,如果用户名或密码名

25、为空,转向错误处理页面进行错误处理。本应用由三个程序构成:(1)登陆界面程序,见JSP9-13.jsp(2)验证用户名或密码名是否为空,见JSP9-14.jsp;(3)错误处理的页面,见JSP9-15.jsp。,9.8 exception对象,注意:在例9.8中的应用中,如果运行的是默认配置的IE5.0以上浏览器,则并不会出现用户自定义的错误页面结果。只会在浏览器中出现“500内部错误”。这是因为IE默认设置中使用了友好HTTP错误信息导致。如果需要使用用户自定义的错误信息,需要将IE浏览器的“IE-Internet选项-高级-显示友好HTTP错误信息”选项信息取消,用户自定义的错误页面才可以

26、使用。,9.8 exception对象,page对象是java.lang.Object的对象实例,它是JSP的实现类的实例,即JSP的Servlet处理当前请求的对象实例。JSP文件会由Servlet容器在第一次运行时编译成Servlet类,每次运行会创建一个该类的对象,这个对象可以用page表示。page对象相当于是编译的Servlet中this引用的一个代名词。,9.9 page对象,pageContext对象是javax.servlet.jsp.pageContext类的一个对象实例。该内置对象提供JSP页面上下文,表示JSP页面本身。它可以实现对JSP页面内所有的对象以及属性的管理和访

27、问。,9.10 pageContext对象,pageContext对象的常见方法Object getAttribute():返回与指定范围内名称有关的变量或nullObject findAttribute(String):用来按照页面请求、会话以及应用程序范围的顺序实现对某个已经命名属性的搜索void setAttribute(String,Object):用来设置默认页面的范围或指定范围之中的已命名对象void removeAttribute():用来删除默认页面范围或指定范围之中已命名的对象,9.10 pageContext对象,Exception getException():返回当前e

28、xception对象ServletRequest getRequest():返回当前的request对象ServletResponse getResponse():返回当前的response对象ServletConfig getServletConfig():返回当前页面的servletConfig对象,如config对象ServletContext getServletContext():返回当前页面的上下文ServletContext对象,如application对象HttpSession getSession():返回当前页面的session对象,9.10 pageContext对象,p

29、ageContext对象的应用实例例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备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号