第六章 JSP语法之隐式对象课件

上传人:我*** 文档编号:139007429 上传时间:2020-07-19 格式:PPT 页数:40 大小:1.43MB
返回 下载 相关 举报
第六章 JSP语法之隐式对象课件_第1页
第1页 / 共40页
第六章 JSP语法之隐式对象课件_第2页
第2页 / 共40页
第六章 JSP语法之隐式对象课件_第3页
第3页 / 共40页
第六章 JSP语法之隐式对象课件_第4页
第4页 / 共40页
第六章 JSP语法之隐式对象课件_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《第六章 JSP语法之隐式对象课件》由会员分享,可在线阅读,更多相关《第六章 JSP语法之隐式对象课件(40页珍藏版)》请在金锄头文库上搜索。

1、第六章 JSP语法之隐式对象,本章主要内容,6.1 简介 6.2 与输入输出有关的隐式对象 6.3 与Servlet有关的隐式对象 6.4 与错误有关的隐式对象 6.5 与作用域通信有关的隐式对象 6.6 属性和范围 6.7 总结 6.8 练习,6.1 简介,JSP隐式对象是Web容器加载的一组类的实例,它不像一般的Java对象那样用“new”去获取实例,而是可以直接在JSP页面使用的对象。 JSP提供的隐式对象分为4个主要类别,下表列出了JSP提供的九个隐式对象及其分类。,6.2 与输入输出有关的隐式对象,6.2.1 request对象 在JSP网页中,request对象是实现javax.s

2、ervlet.http.HttpServletRequest接口的,HttpServletRequest接口所提供的方法,可以将它分为四大类: 取得请求参数的方法 存取和取得属性的方法 取得请求HTTP标头的方法 其他方法,如:取得请求的URL、IP和session等 最终要的还是要分清取得请求参数的方法,如下表所示,6.2 与输入输出有关的隐式对象,6.2.1 request对象,在这里,我们不再赘述每一个方法,如需使用它们的时候,请查看API帮助。,6.2 与输入输出有关的隐式对象,6.2.2 response对象 response隐式对象处理JSP生成的响应,然后将响应发送给客户端。Re

3、sponse对象是 实现javax.servlet.http.HttpServletResponse接口。其中常用的方法我们介绍如下三个,其它的方法如果需要请查看API帮助。 void setHeader(String name, String value);作用是设定标头。它还有两个类似的方法 void setDateHeader()和void setIntHeader()。我们后边介绍。 首先我们来看设定页面的缓存方式。如果是HTTP/1.0,我们通过如下方式设定 response.setHeader(Pragma, no-cache);,6.2 与输入输出有关的隐式对象,6.2.2 re

4、sponse对象 如果是HTTP/1.1的情况,我们通过下边方式来设定。 response.setHeader(Cache-Control, no-cache);,如果我们想让网页自动更新,则要用到setIntHeader()方法和“Refresh”标头,使用方法如下:,response.setIntHeader(Refresh, 3);,6.2 与输入输出有关的隐式对象,6.2.2 response对象 void setContentType(String name);作用是设置作为响应生成的内容的类型和字符编码。 void sendRedirect(String name);作用是发送一个

5、响应给浏览器,指示其请求另一个URL。下面我们来看一个实例: 首先,创建response1.jsp,其中用到了上述方法,并重定向到response2.jsp。response1.jsp的代码如例所示。 ,6.2 与输入输出有关的隐式对象, 直接跳转到response2.jsp ,6.2 与输入输出有关的隐式对象,6.2.2 response对象 下面我们来创建response2.jsp。我们在里边显示了response1.jsp中设定的ContentType,并设定每5秒画面自己刷新一次。代码如例所示。 自刷新 ,6.2 与输入输出有关的隐式对象,6.2.2 response对象 respon

6、se的content类型为: ,6.2 与输入输出有关的隐式对象,6.2.2 response对象 这时,我们看看执行结果,注意底下的刷新条,会不会每5秒刷新一次。如图。,6.2 与输入输出有关的隐式对象,6.2.3 out对象 out对象用于向客户端输出数据 out对象常用方法: print():在页面中打印出字符串信息, ,6.3 与Servlet有关的隐式对象,6.3.1 page对象 page对象代表JSP本身,更准确地说,它代表JSP被转译后的Servlet,因此,它可以调用Servlet类所定义的变量和方法。它是java.lang.Object类的一个实例。不过,page很少在JS

7、P中使用,一般使用前面学过的page指令即可。例的page.jsp为我们展示了如何通过page对象获得Servlet信息。执行结果如图所示。 ,6.3 与Servlet有关的隐式对象,6.3.1 page对象 page对象 ,6.3 与Servlet有关的隐式对象,6.3.1 page对象 上列运行效果如图所示:,6.3 与Servlet有关的隐式对象,6.3.2 config对象 config对象存储Servlet的一些初始信息与page对象一样很少使用。config对象是javax.servlet.ServletConfig接口的一个实例。下面我们通过一个例子来演示通过config对象来获

8、得web.xml中设定的Servlet初始参数值,6.4 与错误有关的隐式对象,与错误有关的隐式对象只有一个就是exception对象。 JSP页面执行后,会在网页上显示内容。如果执行JSP过程中出现错误,JSP页面的执行就会终止。exception对象就是用于处理JSP页面中的错误。 在这里我们再举一个简单的例子,我们来写一个JSP来做除数为0的计算,并显示出错误信息。 我们先来创建div0.jsp,代码如例所示。,6.4 与错误有关的隐式对象, 除数为0的计算 ,6.4 与错误有关的隐式对象,现在我们来创建异常处理页面div0exception.jsp,代码如例所示。 除数为0的计算错误处

9、理 除数为0错误: ,6.4 与错误有关的隐式对象,注意:作为错误处理对象的JSP必须设定page指令中的isErrorPage属性为“true”。而捕获错误的JSP必须设定page指令中的errorPage属性为处理错误的页面URL。而且,printStackTrace()函数的参数要为PrintWriter而不是JspWriter。 运行结果如图所示。当我们迁移到div0.jsp时发生除数为0错误,直接跳转到处理错误的div0exception.jsp。,6.5 与作用域通信有关的隐式对象,6.5.1 session对象 session对象用来存储有关用户会话的所有信息 session对象

10、常用方法: void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到session中 Object getAttribute(String key):根据名称去获取session中存放对象的值,session.setAttribute(name, admin);,String name = (String) session.getAttribute(name);,6.5 与作用域通信有关的隐式对象,6.5.1 session对象 下面我们就来举一个例子来看看这些方法。sessionfun.jsp代码如例 ,6.5 与作用域通信

11、有关的隐式对象,6.5.1 session对象 session生成时间: session ID: 最后发送请求时间: 最大session不活动时间: 显示存放在session中的值 ,6.5 与作用域通信有关的隐式对象,6.5.1 session对象 在例中,我们往session中存入key为user值为admin的数据对,然后设定session会在5秒没有任何操作的情况下失效。并显示session的ID,生成时间等等的内容。在最下边,有一个连接迁移到另一个页面showsession.jsp中显示session中user:admin的数据对。showsession.jsp代码如例所示 user

12、: 。,6.5 与作用域通信有关的隐式对象,执行结果如图所示。,6.5 与作用域通信有关的隐式对象,此时,我们点击“显示存放在session中的值”链接,页面显示结果如图所示。,6.5 与作用域通信有关的隐式对象,如果在如图6.7的页面中什么操作都不做等5秒以后,再点击“显示存放在session中的值”链接,将得到如图6.9的页面,得到的user值为null,因为session已经过期了。,6.5 与作用域通信有关的隐式对象,6.5.2 application对象 application对象实现javax.servlet.ServletContext接口,它主要功能在于取得或更改Servlet

13、的设定。application对象的生命周期最长,它从服务器启动开始就存在,知道服务器关闭为止。 application类似于系统的“全局变量”,用于实现用户之间的数据共享 application对象的常用方法: void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到application中,application.setAttribute(LOGINED_USER, new ArrayList();,6.5 与作用域通信有关的隐式对象,6.5.2 application对象 Object getAttribute(Stri

14、ng key):根据键去获取application中存放对象的值,if (application.getAttribute(LOGINED_USER) != null) List loginedUsers = (List) application.getAttribute(LOGINED_USER); ,6.5 与作用域通信有关的隐式对象,6.5.2 application对象 我们来举一个简单的例子来看看这些方法的使用 首先执行setAttribute()方法,设置user:admin, 接着执行getAttribte(user)方法, 设置user后: 然后我们执行removeAttrib

15、ute(user), ,6.5 与作用域通信有关的隐式对象,我们再次执行getAttribte(user)方法。 删除user后: 获得Srevlet容器版本: Servlet容器最大版本: Servlet容器最小版本: ,6.5 与作用域通信有关的隐式对象,执行结果如图6.10所示。,6.5 与作用域通信有关的隐式对象,6.5.3 pageContext对象 pageContext对象使用户可以访问页面作用域中定义的隐式对象。 pageContext对象也提供方法来访问隐式对象的所有属性,但必须制定范围的参数。它的作用范围仅仅在页面内。 具体方法和用法参见教材89页,6.6 属性和范围,6.

16、6.1 Page范围 JSP中有四种范围:Page、Request、Session和Application。 所谓的Page,指的是只在一个JSP页面中起作用。 若要将数据存入Page范围时,可以用pageContext对象的setAttribute()方法;若要取得Page范围的数据时,可以使用pageContext对象的getAttribute()方法。,6.6 属性和范围,6.6.2 Request范围 接下来我们来看看第二种范围:Request。 Request的范围是指在一个JSP网页发出请求道另一个JSP页面之间,随后,这个属性就失效了。 设定Request范围的属性时可以利用request对象中的setAttribute()和getAttribute()方法。,6.6 属性和范围,6.6.3 Session范围 Session作用范围比Page和Request范围要大,一般只有三种情况,Session范围的属性才会失效: 第一种就是我们设定了session的最大不活动时间,我们在讲解s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号