一、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>
以上内容参考JAVAWEB开发实战经典(名师讲坛)
时间: 2024-10-10 15:26:56