Cookie 和 Session

Cookie与Session

         Cookie 是 web 服务器发送给浏览器的一块信息,浏览器会在本地一个文件中给每个 web 服务器存储 cookie。

以后浏览器再给特定的web服务器发送请求时,同时会发送所有为该服务器存储的cookie。


         Session 是存储在 web 服务器端的一块信息。session 对象存储特定用户会话所需的属性及配置信息。当用户在

应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去

区别:

1.session 在服务器端,cookie 在客户端(浏览器)

2.无论客户端做怎样的设置,session都能够正常工作。当客户端禁用cookie时将无法使用cookie

3.在存储的数据量方面:session能够存储任意的java对象,cookie只能存储String类型的对象。


下面利用Session模拟考试系统:

考试页面:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>demo</title>
</head>
	<body>
		<form action="demo1.jsp"method="post">
	   		学号:
	   		<input type="text"name="id"/>
	   		   <p>
	   		 	 一.单项选择题(每题两分)<br>
				1.下列哪个方法是获取session中关键字key的对象()<br>
				<input type="radio"name="one"value="A"/>
				A.public void setAttribute(String key,object obj)<br>	
				<input type="radio"name="one"value="B"/>
				B.public void removeAttribute(String key)<br>
				<input type="radio"name="one"value="C"/>
				C.public Enumeration getAttributeNames()<br>
				<input type="radio"name="one"value="D"/>
				D.public object getAttribute(String key)<br>  
				</p> 			
				<p>
				二.判断题(每题两分)<br>
				1.同一客户在多个web服务目录中,所对应得session对象互不相同<br>
				<input type="radio"name="2"value="true"/>true
				<input type="radio"name="2"value="False">False
				</p><br>
				<input type="submit"value="提交"name=submit>
				<input type="reset"value="重置"name=reset>
		</form>	 
	</body>
</html>

Session保存信息:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>demo1</title>
</head>
	<body>
		<form action="demo2.jsp"method="post">
			<%
			  	String id=request.getParameter("id");
				session.setAttribute("id",id);
				
				String slect=request.getParameter("one");
				session.setAttribute("one",slect);
				
				String judge=request.getParameter("2");
				session.setAttribute("2", judge);
			%>
			您的考号:<%=id %><br>
			一.选择题<br>
			1.<%=slect %><br>
			二.判断题<br>
			1.<%=judge %><br>
			
			<input type="submit"value="确认"/>
			<a href="demo.jsp">重新答题</a>
		</form>
	</body>
</html>

系统进行判断,得出成绩:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>demo2</title>
</head>
	<body>
		<%
			String id=(String)session.getAttribute("id");
			int sum=0;
			String slect=(String)session.getAttribute("one");
			if("D".equals(slect)){
				sum+=2;
			}
			
			String judge=(String)session.getAttribute("2");
			if("true".equals(judge)){
				sum+=2;
			}
		%>
		您的成绩如下:<br>
		<table border="1">
			<tr>
				<th width="50%">学号</th>
				<th width="50%">成绩</th>
			</tr>
			<tr>
				<td><%=id %></td>
				<td align="right"><%=sum %></td>
			</tr>
		</table>
	</body>
</html>

运行如下:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值