欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP Session对象

程序员文章站 2024-03-20 13:00:16
...

##Session

Session用于区分不同的用户,每一个session就表示一个用户。 在jsp中javax.servlet.http.HttpSession对象。 Session在实际的操作中主要的功能是判断用户是否登陆。常用方法:

No 方法 描述
1 Public void setAttribute(String name,Object value) 设置属性
2 Public Object getAttribute(String name) 取得属性
3 Public void removeAttribute(String name) 删除属性
4 Public Boolean isNew() 判断是否是新的session
5 Public String getId() 返回sessionID
6 Public void invalidate() 让session失效
7 Public void setValue(String name),Object value) 设置属性
8 Public Object getValue(String name) 取得属性
9 Public void removeValue(String name) 删除属性

setValue()之类的方法,是session最早的操作,如果在一些比较旧的书上可能会发现这样的用法,因为后来为了强调JSP中四种属性范围,所以将方法修改了。

##2.session中的主要操作方法

###1.1.取得sessionID

<%=session.getId()%>

###1.2.让session失效:注销

每次执行invalidate方法的时候,就表示session失效。 例子:

<%=session.getId()%>	//取得sessionID
<%
session.invalidate();	//让session失效
%>

###1.3、session的主要功能在于系统登录上

在所有的系统之中,session对象中使用最多的操作就是设置和取得属性。 范例:login.jsp

<%@page contentType="text/html;charset=gbk"%>
<center>
<form action="login.jsp" method="get" >
	<table border="1" >	
		<tr>
			<td colspan="2"><h1>登陆界面</h1></td>
		</tr>
		<tr>
			<td>用户名:</td>
			<td><input type="text" name="name" /></td>
		</tr>
		<tr>
			<td>密&nbsp;&nbsp;码:</td>
			<td><input type="password" name="pwd" /></td>
		</tr>
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="提交" />
			</td>
		</tr>
	</table>
</form>

<%
	String name=request.getParameter("name");
	String pwd=request.getParameter("pwd");
	if(!(("".equals(name) || name==null) &&( "".equals(pwd) || pwd==null ))){
		
		if(name.length()>5 && pwd.length()>5){
			session.setAttribute("name",name);
			response.sendRedirect("welcome.jsp");
		}
		else{
			%>
				<h2><%="用户名或密码错误"%></h2>
			<%
		}
	}
%>
</center>

范例:welcom.jsp

<%@ page contentType="text/html;charset=gbk"%>
<%
	if(session.getAttribute("name")!=null){
%>
		<h1>欢迎光临!</h1>
		<h1><a href="loginout.jsp">注销</a></h1>
<%
	}else{		
%>
		<h1>请先<a href="login.jsp">登录</a>!</h1>
<%
	}
%>

为程序加入注销功能的页面 范例:loginout.jsp

<%
	//注销session,
	session.invalidate();
%>

一个好的程序,应该加入验证码的操作。

###1.4判断是否是新的session

当用户第一次连接到服务器的时候,可以通过isNew()方法来判断此用户是否是新用户。 范例:判断新用户

<%@page contentType="text/html;charset=gbk"%>
<h1>
<%
	if(session.isNew()){
%>
	<%="欢迎新用户"%>
<%
	}else{
%>
	<%="您是老用户了!"%>
<%
	}
%>
</h1>

此方法的原理实际上是在于Cookie的设置上,回顾一下 如果用户第一次访问服务器的话,Cookie中并不会存在JSESSIONID 而如果用户第二次访问的话,Cookie中已经存在了JSESSIONID,所以就不认为他是新用户了。

##SESSION与Cookie的关系

  • Session在服务器端
  • Cookie在客户端

转载于:https://my.oschina.net/csmw00/blog/678285