Cookie
多数用来保存用户的账号,以及一些用户的浏览痕迹
new一个cookie
"userName"是这个cookie的名字,userName是你要保存的用户名
Cookie cookie = new Cookie(“userName”,userName);
注意:cookie的key-value只能保存String类型
将cookie添加到浏览器
response.addCookie(cookie);
获取cookie
request.getCookies(); //返回的是cookie的数组
Cookie练习——登录成功时,第二次登录页面中自动填写用户名
登录验证页面
<%
Cookie cookie = new Cookie("cu_name",cu_name);//用cookie保存cu_name
response.addCookie(cookie);//将cookie添加到浏览器
%>
登录页面
<%
<html>
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<%
//先将cu_name设置为""字符,避免第一次登录时cookie为null
String cu_name = "";
//从浏览器中获取cookies
Cookie[] cs = request.getCookies();
//判断cs数组是否为空,即数组中有没有cookie存在
if(cs!=null && cs.length>0){
//不为空则遍历cs数组 找到你添加的cookie
for(int i=0;i<cs.length;i++){
if("cu_name".equals(cs[i].getName())){
//找到cookie后将cookie保存的值赋值给cu_name
//并在下面的html的input中直接填入
cu_name = cs[i].getValue();
}
}
}
%>
<body>
<form action="login.jsp" method="post">
//直接填入获取到的cu_name值
账号:<input type="text" name="cu_name" value="<%=cu_name%>"/><br/>
密码:<input type="password" name="cu_phone" /><br />
<input type="submit" value="登录" /><br />
</form>
</body>
</html>
session
在一个会话过程中存在一个唯一的sessionid,用来标识这一次会话(在关闭浏览器时,再次打开会重新生成一个sessionid),session保存的数据在服务器上,重新开始会话时,数据不会消失
使用session保存数据
session(String str,Object o);
注意:session和cookie不同,cookie是保存在客户端的,所以只能使用String类型保存到文本中,但是session是保存在服务器上的,那么就可以保存对象//用session保存一个cu_name数据 session.setAttribute("cu_name",cu_name); //通过getAttribute方法来获取名字为cu_name的session所保存的数据 session.getAttribute("cu_name");
application
用于统计网页的访问数量,用它保存的数据在整个Web项目中都可以使用
注意:由于他也是保存在服务器上,但是不会和session一样在浏览器关闭后清除,并且所有浏览器都可以访问,所以application非常占用内存,不建议使用//用application制作网页访问数量的统计 int count = 1; //设置初始值 //判断有没有用application保存过count数据 if(application.getAttribute("count")==null){ //假如没有保存过(即 第一个访问该页面的人),那么保存该数据 application.setAttribute("count",count); }else{ //假如不是第一个访问该页面的人 count++; //访问数量++ //将更新后的访问数量重新保存给count application.setAttribute("count",count); } //在html代码中输出count 即可完成对页面访问数量的统计
cookie、session、application三者的用途和区别总结
cookie主要用于保存用户账户信息,用于统计独立访客数量
session用于统计当前时间的在线人数
application用于统计页面的访问数量
cookie保存在客户端,用户可以手动清除
session保存在服务器,但是在一个会话结束之后,就会换一个session id来唯一标识本次会话,上一次会话的数据保存在服务器,并不会清除
application保存在服务器,且不同的浏览器都能访问