第3章常用内置对.ppt

上传人:本田雅阁 文档编号:2254618 上传时间:2019-03-11 格式:PPT 页数:35 大小:654.01KB
返回 下载 相关 举报
第3章常用内置对.ppt_第1页
第1页 / 共35页
第3章常用内置对.ppt_第2页
第2页 / 共35页
第3章常用内置对.ppt_第3页
第3页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章常用内置对.ppt》由会员分享,可在线阅读,更多相关《第3章常用内置对.ppt(35页珍藏版)》请在三一文库上搜索。

1、第3章 常用内置对象在项目 中的应用,中国人民大学出版社,技能目标 能使用Dreamweaver设计网页,能实现页面的跳转,能实现信息在网页间的共享。 知识目标 掌握常用的HTML标记; 掌握JSP、include指令的用法; 掌握response、session、cookie、application等内置对象的用法。 依托任务 在网上购物网站中,有很多的商品陈列于一个网页中,而众多的商品又要由若干网页去展示,用户购物时常需从分布在不同网页中的众多商品中挑选出自己喜爱的商品,这就需要我们设计的网站具备记忆用户在不同网页选购了哪些商品的能力。我们把购物网站的记忆功能当作一个任务。,任务一 制作商

2、品展示网页,设计一个商品展示网页,网页的内容通常包含商品的图片、名称、单价 等,如图,购物网页的设计实现 在Dreamweaver中可按如下步骤实现: 启动Dreamweaver并新建一个JSP文件。 切换到设计视图模式,选择“插入”菜单下的“表格”命令,在弹出的对话框中设置欲插入的表格的行与列数均设置为3。 向第一行单元格中分别插入商品图片。 向第二行单元格中分别输入商品名称并在属性面板中设置文字的字体、字号及颜色,再设置单元格居中显示。 向第三行单元格中分别输入价格信息并在属性面板中设置文字的字体、字号与颜色,并设置单元格居中显示。 则商品表网页已经建好。这比用HTML标记定义要快得多。,

3、相关知识,1、DreamWeaver CS3的安装 DreamWeaver CS3简体中文版可在国内的 http:/ 或官方的http:/ 网站中下载。双击运行DreamWeaver安装程序,各安装步骤取默认值,直至安装结束。,2.在DreamWeaver CS3下配置JSP站点的方法 进入在DreamWeaver CS3后,按以下步骤配置JSP站点: 选择“站点”菜单下的“新建站点”命令,出现图3-3所示的对话框。在该对话框中输入站点的名称,在你的站点的HTTP是什么?中输入:http:/localhost:8080。并按“下一步”按钮。,出现对话框后,在该对话框中选中“我想他用服务器技术”

4、,并从服务器技术列表中选择“JSP”。再按“下一步”按钮。 出现对话框后,在该对话框中单击文件存储位置后的图标按钮。 出现对话框后,在该对话框中选中文件存储位置,该位置一般为tomcat安装路径下的ROOT文件夹,按“选择”按钮并按“下一步”按钮。,出现对话框后,在该对话框中输入访问网站网页的方式,该URL的一般形式为:http:/localhost:8080/。单击“测试URL”,出现“URL前缀测试已成功”对话框,则表明前面的配置都正确。继续单击“下一步”按钮,直至完成。,任务二 记录选购商品信息,我们要把选中的商品信息临时记录下来,并送到另外的网页中进行处理,可以借助request、se

5、ssion、cookie、application对象对信息进行存放。也就是说商品信息记录的载体是不同种类的对象。,问题实现,为使问题简化,我们可假定在bag.jsp中记录下了商品的名称与单价,而在total.jsp中显示用户已购商品信息并计算出总价格。 bag.jsp中的代码如下: ,已购买的商品如下: 电视机 2500 洗衣机 2800 电动车 1600 我要结算 ,total.jsp文件中的代码如下: % String s=(String)session.getAttribute(“thing“); float total=0; StringTokenizer fenxi=new Stri

6、ngTokenizer(s,“,“); /用字符串分析器分解出子字符串 while(fenxi.hasMoreTokens() String str1=fenxi.nextToken(); out.print(str1+“ “); String str2=fenxi.nextToken();,out.print(str2+“ “); total=total+Float.parseFloat(str2); out.print(“商品的总价格是“+total); % ,相关知识,1. session对象 session是一种服务器个别处理与记录用户端上网使用者信息的技术。当上网者与服务器联机时,服

7、务器可以给每一个上网的使用者一个session并设定其中的内容,这些session都是个别独立的,服务器端可以借此来辨别使用者信息进而提供个别的服务。 session对象从使用者进入系统后由系统自动创建,当注销退出系统时session对象自动销毁。我们把session对象从创建到销毁所经历的时间,称为一个session通信周期。session对象的常用方法为: getAttribute(String name):获得指定名字的属性,如果该属性不存在,将会返回null。 getAttributeNames():返回session对象中存储的每个属性对象,结果集是一个Enumeration类的实例

8、。,setAttribute(String name,java.lang.Object value):设定指定名字的属性值,并且把它存储在session对象中。 isNew():判断目前session是否为新的session,若是则返回true,否则返回false。 getId():返回session对象在服务器端的编号。每生成一个session对象,服务器都会给它一个编号,并且该编号不会重复,这样服务器才能根据编号来识别session,并且正确的处理某一特定的session及其提供的服务。 getCreationTime():返回session对象被创建的时间,单位为毫秒。 getLastA

9、ccessedTime():返回当前session对象最后一次被操作的时间,时间的单位为毫秒。,getMaxInactiveInterval():获取session对象的生存时间,时间的单位为秒。 setMaxInactiveInterval(int interval):设置session的有效时间(也叫超时时间),时间的单位为秒。 removeAttribute(String name):删除指定的属性(包含属性名、属性值)。如果在有效时间内,用户做出了新的请求,那么服务器就会将其看作一个新的用户,此时,服务器将创建一个新的session,旧的session信息将会丢失。,2.cookie对

10、象 Cookie,或称Cookies,在Web技术中指Web服务器暂存在客户端浏览器内存或硬盘文件中的少量数据。Web服务器通过HTTP报头来获得客户端中的cookie信息。 在JSP中使用cookie的基本过程为: 在服务器端生成cookie对象,把待保存信息写入cookie对象中; 必要时设置cookie对象的生命期; 把cookie对象传给客户端浏览器保存; 服务器端程序需要cookie信息时,用代码读取cookie信息。,javax.servlet.http.Cookie类用来生成一个cookie对象,这个类中常用的方法有: 构造方法: Cookie(String name,Strin

11、g value):第一个形参是cookie数据的变量名,第二个形参是待保存的数据,字符串类型。 setMaxAge(int expiry):这个方法定义cookie对象的生命期,形参是生命时间数,单位秒。如果生命周期为负整数,表示这个cookie对象是临时的,不要保存在硬盘文件中,关闭IE浏览器后cookie数据自动丢失。如果生命期为零,表示删除这个cookie。默认值为-1。 Cookie的生命期定义要在cookie对象传回客户端前进行。用public int getMaxAge()方法可读取cookie对象的生命时间。 getName():返回当前cookie对象的变量名。 getValu

12、e():返回当前cookie对象的值。,3.application对象 applicaton负责提供应用程序在服务器中运行的全局信息,当应用程序在服务器中启动时该对象就一直存在,直到服务器关闭为止,所有客户共享这个内置的application对象。applicaton可用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。 application对象常用的方法: getAttributeNames():返回当前上下文中所有可用的appliaction作用范围变量名,并存储在枚举型对象中。 getAttribute(java.lang.String name):从applica

13、tion作用范围中读取指定名字的属性值,返回的属性值是Object类型,一般要进行强制类型转换,还原其原本数据类型。如果指定的属性值对象不存在,则返回null。,getInitParameterNames():返回初始化参数的变量名,并存储在枚举型对象中,如果没有初始化参数,则返回null。 getInitParameter(java.lang.String name):方法的形参是初始化参数的变量名,方法返回指定变量名的初始化参数值。 setAttribute(java.lang.String name,java.lang.Object object):把一个属性写入application作

14、用范围。第一个形参name是属性名,第二个形参object是属性值,它是一个Java对象。如果属性值object为null,则相当于删除一个属性名为name的属性。如果容器中已经存在指定名字的属性,写入操作会用当前的属性值替换原有的属性值。 removeAttribute(java.lang.String name):从Servlet容器中删除指定名字的属性。形参是属性名,字符串形式。,任务三 页面间的跳转实现,用户在购物时在一个网页中选中自己的商品后可能还要到其他网页继续选购商品,这就涉及网页间跳转的问题。,相关知识,1.通过response对象实现网页跳转 客户访问服务器使用的是HTTP请

15、求包,系统将HTTP请求包封装为request对象。服务器响应客户时,即向客户发送信息时,使用的是HTTP响应包 ,系统将HTTP响应包封装为response对象。在JSP页面中,可以使用response对象的方法动态控制响应方式,向客户端发送数据。HTTP响应包与HTTP请求包结构类似。 一般说来,一个HTTP响应包由三个部分组成:一个状态行、多个响应头、信息体,response对象的用法如下: setCharacterEncoding(String charset):定义返回客户端信息的编码标准。如果已经用response.setContentType()定义了字符集,则调用此方法将重新设

16、置字符集。 setContentType(String type):用来设定网页的文件格式与编码方式,与page指令的contentType属性功能相同。格式为: response.setContentType (“text/html;charset=GB2312“); setHeader(String name, String value):第一个形参为报头名,第二个形参是报头值。HTTP报头中有一个名为“Refresh”的响应报头,它的作用是使IE浏览器在若干秒后自动刷新当前网页或跳转至指定的URL资源。这个报头的语法为: response.setHeader(“Refresh”, “秒数

17、;url=目标地址”); sendRedirect(String url):方法用来重新定向新网页。 addCookie(Cookie cookie):把cookie传送到客户端.,2.通过request对象实现网页间跳转 两个Servlet程序间要利用request作用范围变量来传递数据时,要用转发跳转操作实现从第一个Servlet程序A跳转到第二个Servlet程序B,跳转时,程序A中的request和response隐含对象会被自动转发给程序B。 request转发器(RequestDispatcher)的作用是获得目标网页的转发器,通过转发器将当前Servlet程序的request和r

18、esponse对象转发给目标网页,并跳转至目标网页上运行程序,这样,目标网页就可通过request对象读取上一网页传递给它的request属性。 获得目标网页的用法为:,RequestDispatcher target=request.getRequestDispatcher(String path) 形参是当前Web应用目标网页的URI,可以使用相对路径或绝对路径。 可以通过RequestDispatcher对象调用forward()方法实现网页的跳转,用法为: target .forward(request, response); 该用法能够把当前Servlet程序的request和res

19、ponse隐含对象转发给目标网页,并跳转至目标网页运行代码。形参是当前Servlet程序的request和response隐含对象。,3通过超级链接实现网页的跳转 在网页中通过超级链接进行网页的跳转我们都不默生,但在做静态网站时超级链接都是不带参数的,但在JSP中可以通过超级链接借助参数把一些数据从一个网页传递到另一个网页。 通过超级链接传递参数的格式为: 链接文本 当需要通过超级链接传递多个参数时参数之间用“&”连接。格式为: 链接文本,知识拓展,在前面的若干程序中我们都使用到了一种指令:page指令。实际上在JSP中的指令有page、include和taglib,其中page指令描述与页面

20、相关的指示信息,include指令用于包含文件,taglib指令用于指示JSP页面所使用的标记库。,1page指令 page指令定义JSP文件中的全局属性,描述与页面相关的指示信息。 例如: page指令也可以在出现Java运行错误时,指示将用户导向何处。例如: ,page指令的一般语法格式如下: ,language:language属性告诉服务器在文件中将采用哪种语言作为脚本语言,默认为Java。 import:import属性的值是一系列用逗号分开的列表,指明想要引入的包和类。例如: 可以在程序中引入多个需要的包和类,包和类之间用逗号分隔。例如: 也可以将需要引入的多个包和类写在多个pag

21、e指令中。例如: 当使用import引入了包和类后,就可以使用与这些包和类相关的方法和对象了。,session:session属性表示当前页面是否加入会话期间的管理,其缺省值为true,表明内建对象session存在(如果没有session对象,则会新建一个),由session来管理会话。如果设session属性值为false,则内建对象session不存在,这样页面中任何使用到session的语句都会产生编译错误。 buffer:buffer决定输出流(out对象)是否需要缓冲区,缺省值是8KB,也可以设置为none(没有缓冲区)或所指定大小的缓冲区。例如: /该语句指定输出流缓冲区为12K

22、B。 buffer属性通常与autoFlush属性一起使用。 autoFlush:autoFlash属性用于指定是否自动刷新输出缓冲,如果设成true,则当输出缓冲区满的时候,自动刷新缓冲区而不是抛出一个异常,缺省值为true,errorPage:errorPage属性用于指示一个JSP文件的相对路径,以便在页面出错时,转到这个JSP文件来进行处理。与此相对应,需要将这个JSP文件的isErrorPage属性设为true。 isErrorPage:isErrorPage属性指示一个页面是否为错误处理页面。设置为true时,在这个JSP页面中的内建对象exception将被定义,其值将被设定为呼

23、叫此页面的JSP页面的错误对象,以处理该页面所产生的错误。isErrorPage属性缺省值为false,此时将不能使用内建对象exception来处理异常,否则将产生编译错误。 ContentType:ContentType属性用于设置JSP文件和最终文件的MIME类型和字符集的类型。这一项必须在文件的顶部、任何一个其他字符在文件中出现之前。可用的MIME类型有text/plain、text/html、text/html和image/gif、image/jpeg等。ContentType属性缺省值为“text/html;charset = ISO8859_1”。,2include指令 incl

24、ude指令的作用是包含另一个文件,其语法相当简单,使用格式如下: 在这个指令中应该使用JSP的相对路径。被include指令所包含的文件必须符合JSP语法,可以是静态的HTML文件、脚本元素、指令元素和动作元素。在将网页编译为Servlet时,JSP引擎将对所包含的文件进行语法分析。 如果包含的是JSP文件,那么就会执行这个被包含的JSP文件中的代码。如果只是用include指令来包含一个静态文件,那么这个包含的文件所执行的结果将会插入到JSP文件中include指令所在的位置。一旦执行完了包含文件,那么主JSP文件的过程将会恢复,继续执行下一行。,动手练习,练习目的: 1.熟悉JSP指令的用

25、法。 2.掌握response、session、application等内置对象的用法。 3.掌握网页跳转的用法。 练习内容: 1.在一个网页中设置session的username属性值为tom,password的属性值为123,设置session的有效时间为5秒,利用response对象在本网页经过6秒时间后自动转到另一个网页,在另一个request转发器(RequestDispatcher)。 再把本网页的经过6秒转到另一网页改为经过3秒转到另一网页,在另一个网页中读取session中的username、password属性。,2.编写一段程序,把客户机上所有的cookie显示出来。 3. 在一个网页中设置request的username属性值为tom,password的属性值为123。利用request转发器(RequestDispatcher)跳转到另一个网页,把当前request中的username、password属性值输出。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1