02_06 JSP内置对象之session

一、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>
		密&nbsp;&nbsp;码:<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>



以上内容参考JAVAWEB开发实战经典(名师讲坛)


你可能感兴趣的:(jsp登录)