JSP语法之隐式对象.ppt

上传人:牧羊曲112 文档编号:6510441 上传时间:2023-11-07 格式:PPT 页数:40 大小:1.43MB
返回 下载 相关 举报
JSP语法之隐式对象.ppt_第1页
第1页 / 共40页
JSP语法之隐式对象.ppt_第2页
第2页 / 共40页
JSP语法之隐式对象.ppt_第3页
第3页 / 共40页
JSP语法之隐式对象.ppt_第4页
第4页 / 共40页
JSP语法之隐式对象.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《JSP语法之隐式对象.ppt》由会员分享,可在线阅读,更多相关《JSP语法之隐式对象.ppt(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.servlet.h

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

3、avax.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 response对象 如果是HTTP/1

4、.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);作用是发送一个响应给浏览器,指示其请求另一个URL。下面我们

5、来看一个实例:首先,创建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对象response的content类型为:,6.2 与输入输出有关的隐式对象

6、,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很少在JSP中使用,一般使用前面学过的page指令即可。例的page.jsp为我们展示

7、了如何通过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对象来获得web.xml中设定的Servlet初始参数值,6.4 与错误有关的隐式对象,与

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

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

10、的方式,将一个对象的值存放到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 与作用域通信有关的隐式对象,6.5.1 session对象session生成时间:session ID:最后发送请求时间:最大sess

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

12、中的值”链接,页面显示结果如图所示。,6.5 与作用域通信有关的隐式对象,如果在如图6.7的页面中什么操作都不做等5秒以后,再点击“显示存放在session中的值”链接,将得到如图6.9的页面,得到的user值为null,因为session已经过期了。,6.5 与作用域通信有关的隐式对象,6.5.2 application对象 application对象实现javax.servlet.ServletContext接口,它主要功能在于取得或更改Servlet的设定。application对象的生命周期最长,它从服务器启动开始就存在,知道服务器关闭为止。application类似于系统的“全局变量

13、”,用于实现用户之间的数据共享application对象的常用方法:void setAttribute(String key,Object value):以键/值的方式,将一个对象的值存放到application中,application.setAttribute(LOGINED_USER,new ArrayList();,6.5 与作用域通信有关的隐式对象,6.5.2 application对象Object getAttribute(String key):根据键去获取application中存放对象的值,if(application.getAttribute(LOGINED_USER)!=

14、null)List loginedUsers=(List)application.getAttribute(LOGINED_USER);,6.5 与作用域通信有关的隐式对象,6.5.2 application对象 我们来举一个简单的例子来看看这些方法的使用 首先执行setAttribute()方法,设置user:admin,接着执行getAttribte(user)方法,设置user后:然后我们执行removeAttribute(user),,6.5 与作用域通信有关的隐式对象,我们再次执行getAttribte(user)方法。删除user后:获得Srevlet容器版本:Servlet容器最

15、大版本:Servlet容器最小版本:,6.5 与作用域通信有关的隐式对象,执行结果如图6.10所示。,6.5 与作用域通信有关的隐式对象,6.5.3 pageContext对象 pageContext对象使用户可以访问页面作用域中定义的隐式对象。pageContext对象也提供方法来访问隐式对象的所有属性,但必须制定范围的参数。它的作用范围仅仅在页面内。具体方法和用法参见教材89页,6.6 属性和范围,6.6.1 Page范围 JSP中有四种范围:Page、Request、Session和Application。所谓的Page,指的是只在一个JSP页面中起作用。若要将数据存入Page范围时,可

16、以用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范围要大,一般

17、只有三种情况,Session范围的属性才会失效:第一种就是我们设定了session的最大不活动时间,我们在讲解session隐式对象的时候提到过,即在没有任何操作的情况下,多少秒后session对象失效;第二种是我们在web.xml中设置session过期时间,和第一种效果一样,即在没有任何操作的情况下,超过设定的时间,session对象会失效,和第一种不同的是单位是分钟;第三种就是关闭浏览器了,这就意味着我们和服务器断线,这样也会让session对象失效。我们设定Session范围同样就是设定session对象的setAttribute()和getAttribute()方法具体用法请参见教材

18、,6.6 属性和范围,6.6.4 Application范围 Application的作用范围是从服务器一开始执行服务到服务器关闭为止。Application的范围最大,停留的时间也最长,所以要使用时同session一样要特别注意甚至要限制使用,不然可能会造成服务器负载越来越重而导致服务器崩溃的情况。,6.7 总结,隐式对象分为输入输出对象、作用域通信对象、Servlet对象和错误对象四类。输入输出对象包括request、response和out;作用域通信对象包括session、application和pageContext;Servlet对象包括config和page;错误对象包括exce

19、ption。request对象通过getParameter()和getParameterValues()方法获取表单请求数据;response对象通过sendRedirect()方法实现重定向;out方法通过print()、println()和write()方法实现页面输出。pageContext、request、session和application对象通过setAttribute()和getAttribute()方法设置和获得属性值。对于范围最小的是Page,稍大的是Request,再大时Session,最大的是Application。,6.8 练习,1.描述四大范围有什么区别。2.实现一个登陆页面,页面上有用户名、密码输入框,提交和重置按钮。登录页面中设置一个用户List,List中存放n个字符串数组(String2)。字符串数组中为用户名和密码。点击提交按钮后判断页面上输入的用户名密码在List中是否存在,存在则登录成功并显示登录成功画面,否则就是登陆失败跳转到登录失败画面。登录成功后通过session对象记录成功登陆的用户信息,当直接在地址栏中输入登陆成功画面的地址时,如果此用户信息在session对象中存在,则直接显示,若不存在就说明此用户没有登陆成功过,就要跳出一个提示页面,并能够在5秒钟后自动迁移到登陆页面。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号