JSP语法之隐式对象

上传人:pia****nwu 文档编号:244760037 上传时间:2024-10-05 格式:PPT 页数:40 大小:1.43MB
返回 下载 相关 举报
JSP语法之隐式对象_第1页
第1页 / 共40页
JSP语法之隐式对象_第2页
第2页 / 共40页
JSP语法之隐式对象_第3页
第3页 / 共40页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第六章 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.http.HttpServletRequest接口的,HttpServletRequest接口所提供的方法,可以将它分为四大类:,取得请求参数的方法,存取和取得属性的方法,取得请求HTTP标头的方法,其他方法,如:取得请求的URL、IP和session等,最终要的还是要分清取得请求参数的方法,如下表所示,6.2 与输入输出有关的隐式对象,6.2.1 request对象,在这里,我们不再赘述每一个方法,如需使用它们的时候,请查看API帮助。,6.2 与输入输出有关的隐式对象,6.2.2 response对象,response隐式对象处理JSP生成的响应,然后将响应发送给客户端。Response对象是 实现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 response对象,如果是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);作用是发送一个响应给浏览器,指示其请求另一个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对象,response的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很少在JSP中使用,一般使用前面学过的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对象来获得web.xml中设定的Servlet初始参数值,6.4 与错误有关的隐式对象,与错误有关的隐式对象只有一个就是exception对象。,JSP页面执行后,会在网页上显示内容。如果执行JSP过程中出现错误,JSP页面的执行就会终止。exception对象就是用于处理JSP页面中的错误。,在这里我们再举一个简单的例子,我们来写一个JSP来做除数为0的计算,并显示出错误信息。,我们先来创建div0.jsp,代码如例所示。,6.4 与错误有关的隐式对象,除数为0的计算,6.4 与错误有关的隐式对象,现在我们来创建异常处理页面div0exception.jsp,代码如例所示。,除数为0的计算错误处理,除数为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对象常用方法:,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 与作用域通信有关的隐式对象,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:,。,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的设定。application对象的生命周期最长,它从服务器启动开始就存在,知道服务器关闭为止。,application类似于系统的“全局变量”,用于实现用户之间的数据共享,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)!=,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,容器最大版本:,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范围时,可以用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的最大不活动时间,我们在讲解session隐式对象的时候提到过,即在没有
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!