第8章JSP内置对象(4学时)_第1页
第8章JSP内置对象(4学时)_第2页
第8章JSP内置对象(4学时)_第3页
第8章JSP内置对象(4学时)_第4页
第8章JSP内置对象(4学时)_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、java与j2ee架构计算机学院java与j2ee架构第8章 jsp内置对象8.1 request对象8.2 reponse对象8.3 session对象8.4 application对象8.5 out对象java与j2ee架构8.1 request对象n request对象封装了客户端提交的数据信息。n 用request对象的相关方法可获得提交的各种数据。java与j2ee架构request对象方法示例1. 获取客户端和服务器端参数 【go】2. 获取客户端发送给服务器端的参数值:string getparameter(string name) 【go】 string getparamete

2、rvalues(string name) 【go】3. 获取请求中所有参数的集合enumeration getparameternames() 【go】【return】java与j2ee架构1. 获取客户端和服务器端参数示例 请求方式:请求用的协议:请求的文件:响应请求的服务器名称:响应请求的服务器的端口号:获取发出请求的客户端ip地址:获取发出请求的客户端主机名:获取发出请求的客户端端口号:/的真实路径:表单提交来的值: 【return】java与j2ee架构2. request.getparameter()max用函数实现 max( , , ) java与j2ee架构b)if(ac) re

3、turn a;else return c; elseif(bc) return b;else return c; % max.jspjava与j2ee架构练习全错或不选择java与j2ee架构诗人李白是中国历史上哪个朝代的人: 宋朝 唐朝 明朝 元朝 小说红楼梦的作者是: 曹雪芹 罗贯中 李白 司马迁 index.jspjava与j2ee架构您得了分answer.jsp什么功能?【return】多项选择如何操作?java与j2ee架构 姓名 选出你喜欢吃的水果: 苹果 西瓜 桃子 葡萄 input.htmlrequest.getparametervalues()java与j2ee架构 你好,

4、% name=request.getparameter(username); string stars=new string(你喜欢吃的水果有:); string paramvalues = request.getparametervalues(checkbox1); for(int i=0;i getparam.jsp思考问题如果value值为中文?如果不知变量名?java与j2ee架构request对象获取客户提交汉字的乱码问题n首先,将获取的字符串用iso-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个属组转化为字符串对象即可。如: string str=request

5、.getparameter(name);byte a=str.getbytes(iso-8859-1);str=new string(a);【return】java与j2ee架构3. request.getparameternames()stuidstuname 学号: 姓名: 获取变量名java与j2ee架构参考show.jsp %string str=;enumeration e = request.getparameternames();while(e.hasmoreelements() str=e.nextelement(); out.println(str+:+request.get

6、parameter(str)+); %枚举类型java与j2ee架构java.util.enumerationn boolean hasmoreelements()测试此枚举是否包含更多的元素。n object nextelement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素;返回的是object对象,需强制转换为原有类型。 iterator 接口逐渐取代enumeration接口 【return】java与j2ee架构8.2 reponse对象n response对象代表服务器对客户端请求的响应,用于向客户端发送数据。java与j2ee架构response对象方法示

7、例1. 设置指定名称的http头的值void setheader(string name, string value)2. 把响应发送到另外一个位置进行处理void sendredirect(string location)【return】java与j2ee架构1. reponse.setheader()方法n 设置页面自动刷新:response.setheader(refresh, 秒数); n 设置定时跳转页面:response.setheader(refresh, 秒数 ; url=页面名称) ; java与j2ee架构示例1% %java与j2ee架构示例2秒钟能自动更新java与j2

8、ee架构方法1:java.util.date类date today=new date();n getyear():年份 y 由整数 (y-1900) 表示 n getmonth():月份由0至11的表示:0是一月,11是十二月。 n getdate():月份中的某一天,值在 1 和 31 之间。n gethours():小时由从 0 至 23 的表示n getminutes():分钟由 0 至 59 的表示 n getseconds():秒由 0 至 61 的表示, 值 60 和 61 只对闰秒发生。java与j2ee架构 使用date类java与j2ee架构方法2:java.util.cal

9、endar类calendar now = calendar.getinstance();主要用now.get()方法n get(calendar.year)n get(calendar.month)n get(calendar.date) 或 get(day_of_month)n get(calendar.hour) 0-11(12小时制)get(calendar.hour_of_day) 0-23(24小时制)n get(calendar.minute)n get(calendar.second)calendar符号常量(要大写)java与j2ee架构 使用calendar类java与j2e

10、e架构示例3【return】设置定时跳转页面:response.setheader(refresh, 5 ; url=http:/) ; 如何显示倒计时?java与j2ee架构2. reponse.sendredirect()方法%date today =new date();int h= today.gethours();if(h注意:跳转后客户端看到的是新页面地址。java与j2ee架构练习reponse.sendredirect()跳转实现java与j2ee架构简单用法 页面1 页面2 但此例value只是是数字串java与j2ee架构参考请选择: 武汉科技大学 华中科技大学 武汉大学

11、go.jspjava与j2ee架构sendredirect()传递参数n 传递参数示例:response.sendredirect(1.jsp?id=1234)request.getparameter(id)1.jspjava与j2ee架构思考n 区别: response.sendredirect( ) java与j2ee架构主要区别jsp:forwardresponse.sendredirect()效率高,速度快效率低,速度慢地址栏不改变跳转服务器端跳转,服务器之间内部转,相同的request,可传参数地址栏改变跳转客户端跳转(其中地址可以是任意的)使用forward时,request设置的

12、属性(setattribute)依然能保留在下一个页面不能保存request属性地址改变了,客户端跳转,不同的request传递参数:url传递参数:response.sendredirect(test.jsp?id=1234)无条件立刻跳转之后的代码不再被执行;所有代码执行完毕之后再跳转地址中的”/”代表是:http:/localhost:8080/test地址中的”/”代表是:http:/localhost:8080/【return】java与j2ee架构引例 姓名 1.jsp2.jspjava与j2ee架构8.3 session对象n session对象代表服务器与客户端所建立的会话.n

13、从一个客户端打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话.n 为什么需要session?n当一个客户端访问一个服务器时,可能会在这个服务器的多个页面之间反复跳转,服务器应当通过某种办法来识别这是来自同一个客户端的不同请求,这种办法通常就是使用session对象。nsession对象可以实现在一个会话期间的多页面间的数据共享/传递。java与j2ee架构理解sessionnhttp是无状态(stateless)协议,web服务器对每一个客户端请求都没有历史记忆.nsession用来保存客户端状态信息,由web服务器写入,存于客户端.nweb服务器通过读取客户端

14、提交的session来获取客户端的状态信息。java与j2ee架构session对象的idn 当一个客户首次访问服务器上的一个jsp页面时,jsp引擎将产生一个session对象,同时分配一个string类型的id号n jsp引擎同时将这个id号发送到客户端,存放在cookie中,这样session对象和客户之间就建立了一一对应的关系.n 当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。n 当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对

15、象。java与j2ee架构session.getid()方法你的session对象的id是:java与j2ee架构session对象方法示例n设置和获取session属性值 void setattribute(string name,object value)object getattribute(string name)java与j2ee架构设置和获取session属性值n session.setatrribute(string name, object value)n 用value来初始化session对象某个属性(name指定)的值;n 如果指定的属性不存在,则新建一个;如果已存在,则更

16、改name属性的值。n session.getatrribute(string name)n 获得由name指定名称的session对象属性的值;n 方法返回的是一个object对象,因此,对返回的对象要用强制转换把得到的对象转换为此对象原来的类型.n 如果属性不存在,返回空值。java与j2ee架构基本用法示例index.jsp 1.jsp字符串类型值需强制转换java与j2ee架构问题讨论问题1:在第一次运行index.jsp后且不关闭,下一次直接运行1.jsp有结果吗?如果关闭又如何?问题2:如果没有运行index.jsp,而先运行1.jsp有结果吗?问题3:如果将 session.se

17、tattribute(id,1234);改为 session.setattribute(id,1234);java与j2ee架构示例index.jsp % int sum=0; string s1=(string)session.getattribute(start); string s2=(string)session.getattribute(end); int a=integer.parseint(s1); int b=integer.parseint(s2); for(int i=a;i 1.jsp字符串类型值需强制转换java与j2ee架构 index.jsp % int sum=0

18、; int a=(integer)session.getattribute(start); int b=(integer)session.getattribute(end); for(int i=a;i 1.jspint类型java与j2ee架构 姓名 session登录问题java与j2ee架构logcheck.jsp%page import=java.util.* % names=new arraylist();names.add(name);session.setattribute(lognames,names);haslog=true;promt= 欢迎+name+!你的名字已经写入s

19、ession ; for(int i=0;inames.size();i+) string temp=(string)names.get(i); if(temp.equals(name) promt=name+你已经登录; haslog=true; break; names.add(name);session.setattribute(lognames,names);haslog=true;promt= 欢迎+name+!你的名字已经写入session ; 思考问题:(3)与(1)有什么区别?java与j2ee架构arryalist基本用法n arraylist类是个 java.util 包中

20、的类库,存放的是object类型,要从数组列表中提取元素时,需要进行类型转换. n 声明形式:n arraylist a = new arraylist(); 无需指定大小,可自动改变大小n 常用方法:nadd() 添加新元素:a.add(object);nsize() 代替 length 计算元素的个数:a.size()nget(i) 代替 ai 访问元素; arraylist a=new arraylist();for ( int i=0; i10; i+) a.add(i);for ( int i=0; ia.size(); i+) int t=(integer)a.get(i); sy

21、stem.out.println(t+1); java与j2ee架构 姓名 补充:session的注销 index.jsplogcheck2.jsplogout.jspjava与j2ee架构简易购物车(session版)buy1.jspbuy2.jspindex.jspdisplay.jsp关键点:标签跳转后将会在新页面中产生新的request.java与j2ee架构欢迎购物index.jspjava与j2ee架构 各种肉大甩卖,一律十块: 猪肉 牛肉 羊肉 买点别的 查看购物车 buy1.jsp采用不同名称便于session操作java与j2ee架构 各种球大甩卖,一律八块: 篮球 足球 排

22、球 买点别的 查看购物车 buy2.jspjava与j2ee架构 您的购物车: % string str = ; if(session.getattribute(s1) != null) str = (string)session.getattribute(s1); byte b=str.getbytes(iso-8859-1); str=new string(b); out.print(str + ); /再复制5个,依次改为s2s6% 返回display.jsp【return】处理汉字值java与j2ee架构8.4 application对象n application对象负责提供应用程序在服务器中运行时的一些全局信息,客户端使用的application对象都是一样的(实现用户间数据的共享)。n 服务器一旦启动,就会自动创建application对象,并一直保持,直到服务器关闭。n 在此期间,在任何地方对application对象相关属性的操

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论