您的位置:首页 > Web前端 > JavaScript

JSP Session对象

2016-05-20 00:00 441 查看
摘要: 介绍了JSPSession对象的使用

##Session

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

No方法描述
1Public void setAttribute(String name,Object value)设置属性
2Public Object getAttribute(String name)取得属性
3Public void removeAttribute(String name)删除属性
4Public Boolean isNew()判断是否是新的session
5Public String getId()返回sessionID
6Public void invalidate()让session失效
7Public void setValue(String name),Object value)设置属性
8Public Object getValue(String name)取得属性
9Public 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>密  码:</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在客户端
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JSP Session