一、session简介
sessiond对象主要的作用是用于完成用户的登录、注销等操作,每一个session对象都表示不同的访问用户。Session对象是javax.servlet.http.HttpSession接口的实例化对象。常用的方法有:
No | 方法 | 描述 |
1 | Public String getId() | 取得id |
2 | Public long getCreationTime() | 取得创建时间 |
3 | Public long getLastAccessedTime() | 取得最后一次操作时间 |
4 | Public Boolean isNew() | 判断是否是新的用户 |
5 | Public void invalidate() | 让session失效 |
6 | Public Enumeration getAttributeNames() | 得到全部属性名称 |
二、取得session Id
<%@ pagecontentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>session id</title>
</head>
<body>
<%
String id =session.getId(); //取得session id
%>
<h2>SESSIONID:<%=id%></h2>
<h2>SESSION ID长度:<%=id.length()%></h2>
</body>
</html>
三、登录及注销(重要)
1.登录及注销
login.jsp:
完成登录表单的显示,同时向本表单提交数据。如果登录成功,则保存属性;若失败,则显示登录失败信息。
welcome.jsp:
用户登录成功后才可以显示的信息,如果没有登录,则要给出未登录的提示信息,同时给出登录连接地址。
logout.jsp:
完成登录的注销,注销后页面跳转回login.jsp页面。
例登录系统示例
login.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>session login</title>
</head>
<body>
<form action="login.jsp" medthod="post">
用户名:<input type="text" name="uname"><br>
密 码:<input type="password" name="upass"><br>
<input type="submit" vlaue="登录">
<input type="reset" value="重置">
</form>
<%
//假设用户名abc 密码123
String name = request.getParameter("uname"); //
String password = request.getParameter("upass");
//用户名和密码的验证
if( !(null == name || "".equals(name)
|| null == password || "".equals(password)) ){
if( "abc".equals(name) && "123".equals(password) ){
//定时跳转
response.setHeader("refresh", "2; URL=welcome.jsp");
//将登录的用户名保存在session中
session.setAttribute("userid", name);
%>
<h2>用户登录成功,两秒后跳转欢迎页面!</h2>
<h2>如果没有跳转请按<a href="welcome.jsp">这里</a>!</h2>
<%
}else{
%>
<h2>用户名或密码输入错误!</h2>
<%
}
}
%>
</body>
</html>
welcome.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>welcome</title>
</head>
<body>
<%
if( null != session.getAttribute("userid") ){
%>
<h2>欢迎<%=session.getAttribute("userid")%>光临!</h2>
<h2>注销点<a href="logout.jsp">这里</a>!</h2>
<%
}else{
//非法用户
%>
<h2>请先进行系统的<a href="login.jps">登录</a>!</h2>
<%
}
%>
</body>
</html>
logout.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>session id</title>
</head>
<body>
<%
response.setHeader("refresh", "2; URL=login.jsp"); //定时跳转登录页面
session.invalidate(); //注销
%>
<h2>您已成功退出本系统,两秒后跳转登录页面!</h2>
<h2>如果没有跳转请按<a href="login.jsp">这里</a>!</h2>
</body>
</html>
2.取得用户操作时间
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>getTime</title>
</head>
<body>
<%
long start = session.getCreationTime(); //取得创建时间
long end = session.getLastAccessedTime(); //取得最后一次操作时间
long time = (end - start) / 1000; //计算操作时间单位为秒
%>
<h2>您已操作<%=time%>秒!</h2>
</body>
</html>
转载于:https://blog.51cto.com/udbful/1683384