第四章JSP的内置对象.ppt

上传人:sccc 文档编号:6005433 上传时间:2023-09-13 格式:PPT 页数:45 大小:3.16MB
返回 下载 相关 举报
第四章JSP的内置对象.ppt_第1页
第1页 / 共45页
第四章JSP的内置对象.ppt_第2页
第2页 / 共45页
第四章JSP的内置对象.ppt_第3页
第3页 / 共45页
第四章JSP的内置对象.ppt_第4页
第4页 / 共45页
第四章JSP的内置对象.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

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

1、第四章 JSP的内置对象,学习目标,熟悉主要内置对象的概念理解主要内置对象的作用域和生命期理解主要内置对象的作用和关系熟悉主要内置对象的使用方法,什么是JSP内置对象,JSP 内置对象是 Web 容器创建的一组对象JSP 内置对象是可以直接在JSP页面使用的对象,无需使用“new”获取实例JSP 内置对象的名称是 JSP 的保留字,常用内置对象,request,response,out,application,session,示例,没有出现new关键字,但却可以使用request对象,page,JSP内置对象out,out对象用于向客户端输出数据out对象常用方法:print():在页面中打印

2、出字符串信息Println():在页面中打印出字符串信息,并在末尾回车,JSP内置对象request,request对象主要用于处理客户端请求,request 对象,客户端,请求,请求信息,JSP内置对象request,request对象常用方法,JSP内置对象request,编程实现注册功能注册信息包括:用户名、密码、兴趣页面提交后,显示输入的数据,问题分析:在一个页面创建表单,提供信息输入窗口,在另一页面,使用request对象获取表单信息。程序结构:reginput.jsp页面创建表单(信息输入窗口),用户提交信息后,页面定向到reginfo.jsp页面。页面交互关系如图所示。,页面交互

3、关系,程序算法:reginput.jsp:创建一表单,包含一个文本控件一个密码控件,一个复选框,一个提交按钮和一个重置按钮 reginfo.jsp 1.获取文本框,密码框和复选按钮和提交控件的值 2.输出文本框,密码框和复选按钮和提交控件的值,JSP内置对象request 4-4,用户名:密码:兴趣:读书 打篮球玩游戏看电影,String channels=request.getParameterValues(channel);if(channels!=null)for(int i=0;i channels.length;i+)out.println(channelsi);,request.s

4、etCharacterEncoding(GBK);,request.getParameter(“name”);,request.getParameter(pwd);,小结1,显示一个网上改卷的功能要求:一个页面输出单选试题,由另一页面获取用户选择,统计考生得分。第一个页面包含两组单选按钮。第二个页面 获取用户提交的答案与正确答案比较,统计得分输出考试结果效果如图所示:,JSP内置对象response,response对象用于响应客户请求并向客户端输出信息 response 对象常用方法void sendRedirect(String location):将请求重新定位到一个不同的URL,res

5、ponse 对象,客户端,响应,从服务器中检索的信息,存储信息,以在响应客户端请求时发送此信息,内置对象response的常用方法,响应包的状态行服务器响应客户时,它发送到客户端的首行被称为状态行。状态行由3位数的状态代码和描述状态代码的文字组成。下面是对状态代码的分类描述:1xx:1开头的位数字,主要用于实验。2xx:2开头的位数字,表明客户端的请求已成功。3xx:3开头的位数字,表明处理客户的请求以前,应 做一些别的处理。4xx:4开头的位数字,表明浏览器请求是非法的或无 效的。5xx:5开头的位数字,表明服务器出现了问题。我们一般不需要修改状态行,在出现问题时,服务器会自动响应,发送相应

6、的状态代码到客户端。也可以使用setStatus(int n)方法来增加状态行的内容。,4状态代码表下面是服务器响应客户时,发送到客户端的状态代码描述,小结2,要求:在页面中,实时显示当前时间问题分析:要实时显示当前时间,必须每秒钟刷新一次页面,这就要求向客户输出的响应包中,必须含有响应头”Refresh”,其值为1,单位是秒。程序设计 1.输出当前时间 2.添加响应头”Refresh”,其值是1。,现在的时间是:,小结3,功能:要求使用response对象实现页面的重定向要求:实现从一个网页到另一个网页的重定向程序设计:1.先建立一个页面,在此页面上创建一表单,包含用于输入姓名的文本框。(a

7、.jsp)2.再创建一个页面用来(b.jsp)3.创建一个欢迎页面(c.jsp)a.获取表单的姓名信息,和密码信息 b.如果姓名为“sa”,并且密码也为“sa”,则重新定向到 c.jsp页面,否则输出相应的信息。,JSP内置对象-session,客户与服务器的通讯是通过HTTP协议完成的。但是,HTTP协议是一种无状态协议。即,一个客户向服务器发送请求(request),然后服务器返回响应(response),连接就关闭了。服务器端不保留客户与服务器每一次连接的信息,因此,服务器无法判断上下两次连接是否是同一客户。要想记住客户的连接信息,必须使用会话对象(session)。session对象记

8、录了每个客户与服务器的连接信息。,1.会话 从一个客户打开浏览器连接到服务器的某个服务目录(这其间,客户访问的是同一web目录中的网页),到客户关闭浏览器,这一过程称为一个会话。这时,在服务器端,系统为该客户创建了一个session对象。在客户端,系统为该客户创建了Cookie对象。一个客户对同一服务目录中不同网页的访问属于同一会话。2.客户的session对象与服务目录 当一个客户首次访问服务目录中的一个JSP页面时,JSP引擎为该客户创建一个session对象。同一客户访问的服务目录不同,JSP引擎为该客户创建不同的session对象。从时间上看,若客户离开先前的服务目录,连接到其它服务器

9、或者服务目录,当再次回到先前服务目录时,JSP引擎不再给客户分配新的session对象,而是使用先前的session对象。只有当客户关闭浏览器或这个session对象达到了最大生存时间,该客户的session 对象才被取消,这时服务器与客户的会话关系消失。,3Session对象与Cookie 当JSP引擎为客户创建一个session对象后,这个session对象被分配了一个String类型的ID号,JSP引擎同时将此ID号发送到客户端,存放在Cookie中这样,代表同一客户会话的session对象和Cookie对象建立了一一对应关系即,每一客户会话信息保存在session/Cokkie对中4S

10、ession对象与线程当多个客户点击同一页面时,JSP引擎为每个客户启动一个线程,这就是说,一个客户对应一个线程,每个线程对应一个session对象,每个线程的session对象不同。5Session对象生命周期 从一个客户会话开始到会话结束这段时间称为session对象的生命周期。具体上说,指客户访问某web目录下的页面到关闭浏览器,离开该web目录,这段时间成为session对象的生命周期。,Session对象的常用方法,public void setAttribute(String key.Object obj)session 对象类似于散列表,可以调用该方法将参数Object指定的对象

11、obj添加到session对象中,并为添加的对象指定了一个索引关键字。如果添加的两个对象的关键字相同,则先前添加的对象被清除。public Object getAttibue(String key)获取session对象中含有的关键字是key的对象。由于任何对象都可以添加到session对象中,因此用该方法取回对象是,应强制转化为原来的类型。,public Enumeration getAttributeName()session 对象调用该方法产生一个枚举对象。该枚举对象使用nextElemets()方法遍历session对象所含有的全部对象。public long getCreationT

12、ime()session对象调用该方法可以获取该对象创建的时间。单位是毫秒(从1970年7月1日午夜起至该对象创建时刻所走过的毫秒数)。public long getLastAccessedTime()获取当前session对象最后一次被操作的时间,单位是毫秒,public int getMaxInactiveInterval()获取session对象的生存时间public void setMaxInactiveInterval(int n)设置session对象的生存时间(单位是秒)public void removeAttribue(String key)从当前session对象中删除关键

13、字是key的对象。public String getId()获取session对象的编号invalidate()使session对象无效public boolean isNew()判断是否是一个新的客户,同一客户访问两个不同的web目录中的页面,查看该客户在不同web目录中的session对象的ID号。问题分析:创建两个web目录,并在其中部署JSP页面,然后通过表单或超连接,将两个web目录中的页面连接起来。程序结构:本程序由四个JSP页面文件构成。三个页面 example.jsp、liu.jsp、wang.jsp部署在目录ch05下面;file.jsp页面部署在目录ch04下面。下面是四个

14、页面的交互关系所示。,小结4,页面交互关系,example.jsp页面,liu.jsp页面,网页重定向,wang.jsp页面,超链接,file.jsp页面,超链接,超链接,程序算法:example.jsp:1.获取访问本页面的客户的session对象ID号 2.输出ID号 3.创建表单,该表单提交时,将信息提交给liu.jsp页面 4.在创建表单,该表单提交时,将信息提交给file.jsp页面 liu.jsp:1.获取访问本页面的客户的session对象ID号 2.输出ID号 3.设置超链接,链接到wang.jsp页面 wang.jsp:1获取访问本页面的客户的session对象ID号 2输出

15、ID号 3设置超链接,链接到ex5_9.jsp页面 file.jsp:1获取访问本页面的客户的session对象ID号 2输出ID号 3设置超链接,链接到ex5_9.jsp页面,小结5,创建登录页面login.html提供用户名输入框、以及登录按钮创建登录处理页面login.jsp如果用户名为sa,把用户名存储在session中,并跳转进入index.jsp中否则跳转进入login.html页面创建页面index.jsp如果session中没有该用户信息,跳转进入login.html中否则显示欢迎信息,升级上面的的小结5要求:1.输入用户名和密码,然后和数据库中的用户表进行匹配,如果匹配就把该

16、用户信息保存到session中,然后跳转到index.jsp否则跳转到login.jsp页面。2.在index.jsp页面取出session中的用户在页面中显示“用户名”欢迎你!,小结6,将购买者的姓名、商品名保存在session对象中,实现同一web目录下的页面对session对象中的信息共享。问题分析:创建三个页面,第一个页面输入姓名,第二个页面输入商品名,第三个页面实现结帐处理。程序结构:本程序包含三个JSP页面文件,三个页面文件保存在同一web目录中。example1.jsp页面接受姓名录入,并将姓名提交给first.jsp页面;first.jsp页面接受商品名的录入,并将商品名提交给

17、account.jsp页面。三个页面的交互关系如图所示。,页面交互关系,程序算法:example1.jsp:创建一个包含文本控件的表单,用此文本控件录入姓名 first.jsp:1获取客户端输入的姓名(xm)2将属性名-值对,即(name,xm)添加到session对象中 3创建一个包含文本控件的表单,用此文本控件录入商品名 account.jsp:1.获取客户端录入的商品名(sp)2.将属性名-值对,即(goods,sp)添加到session对象中 3.从session对象中获取姓名和商品名 4.将姓名和商品名输出到客户端,小结7,统计访问页面的客户数。第4章的讲述过这种例子,那个例子的缺陷

18、是客户可以通过不断刷新页面增加计数器。在这个例子里,使用session对象的isNew()方法解决这一问题。问题分析:由于客户刷新页面时,session对象的ID号不会改变。当客户刷新页面时,让程序检查客户的session对象是不是一个新的session对象,若是新的session对象,才增加计数器的值。程序结构:程序名:example2.jsp,JSP内置对象-application,我们已经知道,不同的客户与服务器连接时有不同的session对象,同一客户浏览同一服务器的不同目录时,有不同的session对象。与session对象不同的是application对象。服务器启动后,就产生了a

19、pplication对象。所有客户的application对象是相同的一个,即,所有客户共享这个内置的application对象。,application对象生命期 application对象随着服务器启动而创建,随着服务器关闭而消失。application对象的生命周期指从application对象创建到服务器关闭这段时间。application对象与线程当多个客户点击同一页面时,JSP引擎为每个客户启动一个线程,这些线程共享同一个application对象由于所有客户共享同一个application 对象,任何客户对application对象中数据的改变都会影响到其它的客户,因此,对该对象

20、的操作需要实现同步处理。,application对象的常用方法public void setAttribute(String key,Object obj)application对象可以调用该方法将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。如果添加的两个对象的关键字相同,则先前添加的对象被清除。public Object getAttibue(String key)获取application对象中含有的关键字key的对象。由于任何对象都可以添加到application对象中,因此用该方法取回对象时,应强制转化为原来的类型。public

21、 Enumeration getAttributeNames()application对象条用该方法产生一个枚举对象。该枚举对象使用nextElemets()方法遍历application对象所含有的全部对象。,public void removeAttribue(String key)从当前application对象中删除关键字是key的对象。public String getServletInfo()获取Servlet编译器的当前版本信息。注意:有些服务器不直接支持使用application对象,必须先用ServletContext 类声明这个对象,再使用getServletContext

22、()方法对这个application对象初始化,小结8,继续升级小结5中的实验要求:1.增加一个统计页面人数的功能2.能把所有访问了页面的用户名显示出来,page对象,page 对象代表JSP页面本身,更确切地说,它代表JSP被转译后的Servlet。其作用相当于java中的this。,本章小结,本章介绍了JSP内置对象的概念、生命周期、作用范围和对象方法的实际应用。使用JSP内置对象,可以方便操作页面属性和行为,访问页面运行环境,实现页面内、页面间、页面与环境之间的通信和相互操作。,心得体会,(1)用内置对象request的getParameter()方法获取url的参数和表单的信息。经过测

23、试,在相同name的情况下,url的参数会优先于表单的参数。(2)汉字处理问题,有的时候在或out.print(“欢迎”)时会出现乱码。其解决的办法就是要对字符串进行编码。以下代码就可以得到正确的输出:或者(3)Session对象生命周期,例如一个论坛,从你成功登陆到这个论坛,Session对象就产生;一直到你跟服务器断开,比方说关闭浏览器,断网等Session对象就结束。(4)Application对象与Session对象不同,是多个用户共享此对象,即使用户与服务器断开,Application对象依然存在。直到服务器关闭,才会结束。例如用Application对象可以实现储存网站的访问人数。,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号