session对象

session对象

web服务器会给每一个用户自动创建一个session对象,为每一个session对象分配一个唯一表识的String类型的ID,这个ID用来区分其他用户。这样每个用户都对应一个session对象,不同用户的session对象互相不同。

当在不同文件夹里放不同的jsp文件并分别运行时:

一个用户在同一个web服务目录中只有一个session对象,当用户访问相同的web服务目录的其他页面时,web服务器不会在重新分配session对象,直到用户关闭浏览器或这个session对象达到了它的生存期限。当用户重新打开浏览器再次访问该web目录时,web服务器为该用户在创建一个新的session对象。


需要注意的是:同一个用户在多个不同的web服务目录中对应的session对象时不同的,一个服务目录对应一个session对象


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>session1</title>
</head>
<body>
<form action="sessionTest2.jsp" method="post">
			考号:
			<input type="text" name="id"/>
			<p>
				一、单项选择题(每题2分)
				<br/><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 getAttibute(String key)<br/>
			</p>
			<p>
				二、判断题(每题2分)
				<br/><br/>
				1.同一客户在多个Web服务目录中,所对应的session对象是互不相同的。
				<br/>
				<input type="radio" name="two" value="True"/>
				True
				<input type="radio" name="two" value="False"/>
				False
			</p><br/>
			<input type="submit" value="提交" name=submit>
			<input type="reset" value="重置" name=reset>
		</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>session2</title>
</head>
<body>
   <form action="sessionTest3.jsp" method="post">
			<%
				//考号
				String id = request.getParameter("id");
				//把考号id以“id”为关键字存储到session对象中
				session.setAttribute("id", id);
				//单项选择第一题
				String first = request.getParameter("one");
				//把答案first以“one”为关键字存储到session对象中
				session.setAttribute("one", first);
				//判断第一题
				String second = request.getParameter("two");
				//把答案second以“two”为关键字存储到session对象中
				session.setAttribute("two", second);
			%>
			您的考号:<%=id%><br/>
			一、单项选择题(每题2分)
			<br/>
			1.<%=first%>
			<br />
			二、判断题(每题2分)
			<br />
			1.<%=second%><br/>
			<input type="submit" value="确认完毕"/>
			<a href="sessionTest1.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>session3</title>
</head>
<body>
<%
		//获取考号
		//获取session中关键字是id的对象(考号)
		String id = (String) session.getAttribute("id");
		//计算成绩
		int sum = 0;
		//如果单项选择第一题选中D选项,得2分。
		//获取session中关键字是one的对象(选择答案)
		String first = (String) session.getAttribute("one");
		if ("D".equals(first)) {
			sum += 2;
		}
		//如果判断第一题选中True,得2分。
		//获取session中关键字是two的对象(判断答案)
		String second = (String) session.getAttribute("two");
		if ("True".equals(second)) {
			sum += 2;
		}
	%>
	您的成绩公布如下:
	<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>



  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值