1.session 对象在开发中用的最多的地方是“登陆以及注销功能”(当用户第一次连接到服务器时会自动分配一个 session id ,每一个session id 就代表一个用户)
请看以下代码:
login.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>login</title>
</head>
<body>
<form action="login.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="uname"></td>
</tr>
<tr>
<td>密  码:</td>
<td><input type="password" name="upass"></td>
</tr>
<tr>
<td><input type="submit" value="登陆"></td>
<td><input type="reset" name="重置"></td>
</tr>
</table>
</form>
<%
String name=request.getParameter("uname");
String password=request.getParameter("upass");
if(!(name==null||"".equals(name)||password==null||"".equals(password))){
if("SunHao".equals(name)&&"0104".equals(password)){
//登陆成功设置session属性范围
session.setAttribute("userid",name);
response.setHeader("refresh","2;URL=welcome.jsp");
%>
<p>恭喜您登陆成功!两秒后跳转到新页面,如果没有成功跳转请点击<a href="welcome.jsp">这里</a></p>
<%
}else{
%>
<p>错误的用户名或密码!</p>
<%
}
}
%>
</body>
</html>
welcome.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>welcome</title>
</head>
<body>
<%
if(session.getAttribute("userid")!=null){
%>
<p><%=session.getAttribute("userid")%>欢迎您使用本系统,<a href="logout.jsp">注销</a></p>
<%
}else{//没有session属性,给出提示,返回重新登录
%>
<p>若要使用,请先进行<a href="login.jsp">登陆</a>!</p>
<%
}
%>
</body>
</html>
logout.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>out</title>
</head>
<body>
<%
response.setHeader("refresh","2;URL=login.jsp");
session.invalidate();//清除当前使用的session
%>
<p>您已经成功退出本系统,2秒后跳转回首页!如果没有跳转,请点击<a href="logout.jsp">这里</a>!</p>
</body>
</html>
以上的做法是session使用的最多的一种验证登陆操作,除此之外,会话跟踪还有以下几种技术:
1)session提供的方法保存
2)通过Cooke
3)通过表单的隐藏域完成
4)通过地址重写
2.判断新用户
<code>session.isNew()</code>