01.Application原理与应用
01.application对象的作用域范围是整个应用服务,而它在应用中所承担的责任就类似于一个全局变量。只要服务启动,则application对象就会存在。
02.在一个应用中只有一个application,每一个用户都会共享这一个application对象。
03.通过统计网站访问次数来讲解application的用法
02.对象作用域
03.Cookie简介
解析:cookie是Web服务器保存在客户端的一系列文本信息,根据域名和端口号区分是否保存成一个文件,文件大小为4k。注意:http://localhost:8080/news 和http://localhost:8080/news/util会形成两个cookie文件。
1. 什么是cookie
浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览器把Cookie信息保存在类似于C:\windows\cookies的目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,来识别这个用户。
2.使用Cookie
解析:
获取指定key值cookie的核心代码
<%
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("uname")){
response.sendRedirect(path+"/welcome.jsp");
}
}
}
%>
3.JavaBean
解析:从JavaBean的功能上可以分为封装数据和封装业务的JavaBean
一个JavaBean至少符合以下条件
01.是一个公有类
02.属性私有
03.有getter和setter方法
04.无参的公有构造
3.补充一下 Session使用
TTP协议是无状态的,即信息无法通过HTTP协议本身进传递。为了跟踪用户的操作状态,ASP应用SESSION对象。JSP使用一个叫HttpSession的对象实现同样的功能。HTTPSession 是一个建立在cookies 和URL-rewriting上的高质量的界面。Session的信息保存在服务器端,Session的id保存在客户机的cookie中。事实上,在许多服务器上,如果浏览器支持的话它们就使用cookies,但是如果不支持或废除了的话就自动转化为URL-rewriting,session自动为每个流程提供了方便地存储信息的方法。
Session一般在服务器上设置了一个30分钟的过期时间,当客户停止活动后自动失效。Session 中保存和检索的信息不能是基本数据类型如 int, double等,而必须是java的相应的对象,如Integer, Double。
Httpsession具有如下API:
getId 此方法返回唯一的标识,这些标识为每个session而产生。当只有一个单一的值与一个session联合时,或当日志信息与先前的sessions有关时,它被当作键名用。
GetCreationTime 返回session被创建的时间。最小单位为千分之一秒。为得到一个对打印输出很有用的值,可将此值传给Date constructor 或者GregorianCalendar的方法setTimeInMillis。
GetLastAccessedTime 返回session最后被客户发送的时间。最小单位为千分之一秒。
GetMaxInactiveInterval 返回总时间(秒),负值表示session永远不会超时。
getAttribute 取一个session相联系的信息。(在jsp1.0中为 getValue)
Integer item = (Integer) session.getAttrobute("item") //检索出session的值并转化为整型
setAttribute 提供一个关键词和一个值。会替换掉任何以前的值。(在jsp1.0中为putValue)
session.setAttribute("ItemValue", itemName); // ItemValue 必须不是must简单类型
在应用中使用最多的是getAttribute和setAttribute。现以一个简单的例子来说明session的应用, test1.jsp(信息写入session),test2.jsp(从session读出信息)。
1 test1.jsp
2
3 <HTML>
4
5 <HEAD>
6
7 <TITLE> Document </TITLE>
8
9 </HEAD>
10
11 <BODY BGCOLOR="#FFFFFF">
12 session.setAttribute("str",new String(“this is test”));
13 </BODY>
14
15 </HTML>
16 test2.jsp
17 <HTML>
18
19 <HEAD>
20 <TITLE> New Document </TITLE>
21
22 </HEAD>
23
24 <BODY BGCOLOR="#FFFFFF">
25 <%
26 String ls_str=null;
27 ls_str=(String)session.getAttribute("str");
28 out.println(“从session里取出的值为:”+ls_str);
29 %>
30 </BODY>
31
32 </HTML>