JSP Session對象

##Sessionhtml

Session用於區分不一樣的用戶,每個session就表示一個用戶。 在jsp中javax.servlet.http.HttpSession對象。 Session在實際的操做中主要的功能是判斷用戶是否登錄。經常使用方法:java

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中的主要操做方法session

###1.1.取得sessionIDjsp

<%=session.getId()%>

###1.2.讓session失效:註銷spa

每次執行invalidate方法的時候,就表示session失效。 例子:code

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

###1.三、session的主要功能在於系統登陸上orm

在全部的系統之中,session對象中使用最多的操做就是設置和取得屬性。 範例:login.jsphtm

<%@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在客戶端
相關文章
相關標籤/搜索