1、第5章 JSP内置对象,本章学习要点: out对象及其应用; request对象及其应用; response对象及其应用; session对象及其应用; application对象及其应用; cookie对象及其应用;,5.1 out对象 5.2 request对象 5.3 response对象 5.4 session对象 5.5 application对象 5.6 其他对象 5.7 cookie 对象 5.8 本章小结,第5章 JSP内置对象,5.1 out对象,out对象被封装成javax.servlet.JspWriter接口,它用来向客户端输出内容。 Out是专门为向客户端发送输出而设
2、计的,out变量是从PageContext对象初始化而获得的。 out对象的作用域是page。,out对象常用方法,out对象常用方法见图5-2。,图5-2 out对象常用方法,out对象应用实例,out对象应用实例 “); out.println(“输出布尔型数据:“); out.println(true); out.println(“输出字符型数据:“); out.println(l); out.println(“输出字符数组数据:“); out.println(new charl,z,c); out.println(“输出双精度数据:“); out.println(5.66d); out
3、.println(“输出单精度数据:“);,out.println(36.8f); out.println(“输出整型数据:“); out.println(8); out.println(“输出长整型数据:“); out.println(123456789123456L); out.println(“输出对象:“); out.println(new java.util.Date(); out.println(“输出字符串:“); out.println(“liuzchnrpc“); out.println(“输出新行:“); out.newLine(); out.println(“缓冲区大小:
4、“); out.println(out.getBufferSize(); out.println(“缓冲区剩余大小:“); out.println(out.getRemaining(); out.println(“是否自动刷新:“); out.println(out.isAutoFlush();,out.flush(); out.println(“调用out.flush()“); out.close(); out.println(5.66d); %代码分析: 第7行第20行:输出各种类型的数据; 第21行第22行:输出日期对象; 第23行第24行:输出字符串数据; 第25行第26行:输出新行;
5、 第27行第30行:输出当前缓冲区大小及剩余的缓冲区大小; 第31行第32行:判断是否自动刷新。,演示结果,在浏览器中输入http:/127.0.0.1:8080/chap05/outdemo.jsp,outdemo.jsp文件的运行界面如图5-3所示。,5.2 request对象,request对象是和请求相关的HttpServletRequest类的一个对象,该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以查看请求参数的配置情况(调用getParameter来实现)、请求的类型(如Get、Post、Head等)和已经请求的HTTP头(如cookie、
6、Referer等)。,request对象常用方法,request对象应用实例,获取简单表单提交的信息:Request对象可以使用getParameter(string s)方法获取表单提交的信息。 处理汉字信息:当request对象获取客户提交的汉字字符时,会出现乱码问题。将获取的字符串用ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个属组转化为字符串对象即可。,常用方法举例 获取复杂表单提交的信息 1.单选框radio。2.列表框,request对象应用实例,HTML的响应机制,GET提交方法 1.使用GET方法提交表单. 2.在浏览器的地址栏中直接输入地址。 POS
7、T提交方法POST提交数据方法只能通过表单来实现,其表单形式同login.htm基本一致,只是提交方法由“GET”改为“POST” 。,5.3 response对象,Response是和应答相关的HttpServletResponse类的一个对象,它封装了服务器对客户端的响应,然后被发送到客户端以响应客户请求。 Response对象产生的对客户的请求做出动态的响应,并向客户端发送数据。 HttpServletResponse对象具有页面作用域。,response对象常用方法,response对象常用方法见图5-4。,图5-4 response对象常用方法,response对象应用实例,动态响应
8、contenType属性 Response重定向在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用response的sendRedirect(URL)方法实现客户的重定向。 使用Response刷新页面 。,5.4 session对象,Session对象是和请求相关的HttpSession对象,它封装了属于客户会话的所有信息。 Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。,session对象常用方法,session对象常用方法见图5-5。,图5-5 session对象常用方法,session对象应用实例,制作站点计数器%if(
9、session.isNew(),countpeople();String str=String.valueOf(number);session.setAttribute(“count“,str);% 您是第个访问本站的人。,演示结果,sessiondemo1.jsp运行界面如图5-21所示。要实现访问计数的改变,读者可以从不同机器上打开sessiondemo1.jsp(创建不同的会话)。,图5-21 sessiondemo1.jsp运行界面,5.5 application对象,Application对象提供了对javax.servlet.ServletContext对象的访问,它用于多个程序或
10、者多个用户之间共享数据。对于一个容器而言,每个用户都共用一个application对象,这和session对象不同。 服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。,application对象常用方法,application对象常用方法见图5-6。,图5-6 Application对象常用方法,application对象应用实例,使用application读写属
11、性值. 制作站点计数器.Application计数器Application计数器%String strNum = (String)application.getAttribute(“num“);int num = 0;,if(strNum != null) num = Integer.parseInt(strNum) + 1; application.setAttribute(“num“, String.valueOf(num); /起始Num变量值 % 访问次数为:,站点计数器演示结果,Applicationdemo3.jsp运行界面如图5-26所示。,对象作用范围,对于page、reque
12、st、session和application对象,都有一个作用范围的问题。四个对象的作用范围见图5-7。,图5-7 JSP主要内置对象的作用范围,5.6 其他对象,config对象 Config对象提供了对每一个给定的服务器小程序及JSP页面的javax.servlet.ServletConfig对象的访问,该对象封装了初始化参数以及一些实用方法。,图5-8 Config对象常见方法,其他对象,page对象 page对象是可以从JSP脚本小程序和表达式中获得的一个内置对象。它是java.lang.Object类的一个实例。在脚本语言为Java时,page对象只是this引用的一个代名词。exc
13、eption对象exception对象是Java.lang.Throwable类的一个实例。它指的是运行时的异常,也就是被调用的错误页面的结果只有在错误的页面才可以被使用。,pageContext对象提供了对JSP页面内所在的对象及名字空间的访问,可以访问本页所在的session,也可以取本页面所在的application的属性值,它是页面中所有功能的集大成者。,其他对象,图5-9 pageContext对象常见方法,5.7 cookie 对象,cookie是Web服务器保存在用户硬盘上的一段文本。 cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。 cookies是一种W
14、EB服务器通过浏览器在访问者的硬盘上存储信息的手段。,cookie 对象,cookies给网站和用户带来的好处: (1)cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径。 (2)cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告。 (3)cookie有效期限未到时,cookie能使用户不需要重复键入密码和用户名进入曾经浏览过的一些站点。 (4)cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务。,cookie与session的比较,cookie与session的比较见图5-10。,图5-10 cookie与session的比较,
15、cookie基本操作,cookie是以“关键字=值(key=value)”的格式来保存纪录的,其基本操作包括创建、传送和读取。 创建cookie对象 调用cookie对象的构造函数可以创建cookie。cookie对象的构造函数有两个字符串参数:cookie名字和cookie值。创建cookie的语法格式如下:Cookie c=new Cookie(“username”,”liuzc”);,传送cookie对象JSP中如果要将封装好的cookie对象传送到客户端,使用response的addCookie()方法。传送cookie对象的语法格式如下:response.addCookie(c) 设
16、置cookie对象有效时间设置cookie对象有效时间可以使用setMaxAge()方法。如果设置其时间为0,则表示删除该cookie。设置cookie对象的有效时间的语法格式如下:c.setMaxAge(3600);,cookie基本操作,读取cookie对象读取保存到客户端的cookie,使用request对象的getCookies()方法,执行时将所有客户端传来的cookie对象以数组的形式排列,如果要取出符合需要的cookie对象,就需要循环比较数组内每个对象的关键字。基本方法如下:Cookie c=request.getCookies();if(c!=null)for(int I=0
17、;Ic.length;I+)if(“username”.equals(cI.getName()out.println(cI.getValue();,cookie基本操作,cookie的应用,由于代理服务器、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一的ID。借助于cookie,网站可以完成以下工作: 1.测定多少人访问过; 2.测定访问者有多少是新用户(即第一次来访),多少是老用户; 3.测定一个用户多久访问一次网站。 Cookie对象制作站点计数器的方法。,5.8 本章小结,本章学习了如下内容: out对象(发送响应的输出流):包括out对象常用方法、out
18、对象应用实例; request对象(客户端请求):包括request对象常用方法、request对象应用实例、HTML的响应机制; response对象(网页对客户端的响应):包括response对象常用方法、response对象应用实例; session对象(与请求相关的会话):包括session对象常用方法、session对象应用实例;,application对象(Servlet的运行环境):包括application对象常用方法、application对象应用实例、对象作用范围; 其他对象:包括config对象 、page对象、pageContext对象、exception对象; cookie 对象:包括cookie的概念和功能、cookie基本操作、cookie的应用。,5.8 本章小结,Cookie对象制作站点计数器演示结果,cookiedemo.jsp第1次的运行界面如图5-27所示,刷新7次后的运行界面如图5-28所示 。,图5-28,图5-27,5.9 单元实践,综合第1章至第5章所学知识,完成Easy_Buy电子商城的用户登录功能,其中各页面的关系如下图所示。,