JSP Session 学习

session内置对象

一.认识session

1.session在jsp中是

javax.servlet.http.HttpSession


的对象,用于区分不同的用户,每

一个session就表示一个用户。

 

2.它的主要功能就是判断用户的登陆,常用的方法如下:

(1)设置属性:

public void setAttribute(String name,Object value)


(2)取得属性:

public Object getAttribute(String name)


(3)删除属性:

public void removeAttribute(String name)


(4)判断是否新session:

public boolean isNew()


(5)返回sessionid:

public String getId()


(6)让session失效:

public void invalidate()


(7)设置属性:

public void setValue(String name,Object value)


(8)取得属性:

public Object getValue(String name)


(9)删除属性:

public void removeValue(String name)


(注意后三种方法是session最早的操作,后来为了jsp四种属性范围进行修改,

现在不建议使用.)

 

二.session主要操作方法

 

1.取得session id

服务器是靠session id对用户进行区分的,此session id在客户端第一次连接到服务器时

由服务器自动分配,不能手工设置

例1:

新建session1.jsp文件,取得session id:

<%@ page contentType=”text/html;charset=GBK”%>

<h1><%=session.getId()%></h1>

 

2.让session失效,即注销

每次执行invalida()方法是,表示session失效。

例2:

新建session2.jsp文件,观察session失效:

<%@ page contentType=”text/html;charset=GBK”%>

<h1><%=session.getId()%></h1>

<%

session.invalidate() ;
// 让session失效

%>

 

3.判断是否为新的session

当用户第一次连接到服务器时,可通过isNew()方法判断是否为新用户。

此方法的原理在于cookie的设置

(1)若用户第一次访问服务器,则cooki中不存在JSESSIONID

(2)若用户第二次访问服务器,则cookie中已经存在JSESSIONID

例3:

新建session3.jsp文件,进行判断:

<%@ page contentType=”text/html;charset=GBK”%>

<%

if(session.isNew()){

%>

<h2>欢迎新用户光临!</h2>

<%

}
else{

%>

<h2>你不是新用户了!</h2>

<%

}

%>

 

例4:

新建session4.jsp文件,检验JSESSIONID和session id的值是否一致:

<%@ page contentType=”text/html;charset=GBK”%>

<h1><%=session.getId()%></h1>

<%

Cookie c[]
= request.getCookies() ;

if(c!=null){

for(int i=0;i<c.length;i++){

%>

<%=c[i].getName()%> –> <%=c[i].getValue()%>

<%

}

}

%>

 

4.注意session和cookie的关系:session是在服务器端的,cookie是在客户端的

 

5.sessio用于系统登录

在所有系统中,session对象中使用最多的操作就是设置和取得属性

例5:

新建login.jsp文件,负责登录:

<%@ page contentType=”text/html;charset=GBK”%>

<h1>系统登陆</h1>

<form action=”login.jsp” method=”post”>

用户名:

<input type=”text” name=”name”><br>

&nbsp;&nbsp;码:

<input type=”password” name=”password”><br>

<input type=”submit” value=”登陆”>

<input type=”reset” value=”重置”>

</form>

<%

String name = request.getParameter(“name”) ;

String pass = request.getParameter(“password”) ;

if(!((“”.equals(name)||name==null)&&(“”.equals(pass)||pass==null))){

// 假设用户名是abc,密码是123

if(“abc”.equals(name)&&123″.equals(pass)){

session.setAttribute(“name”,name) ;
// 登陆了设置session

response.sendRedirect(“welcome.jsp”) ;

}
else{

%>

<h3>错误的用户名或密码</h3>

<%

}

}

%>

 

新建logout.jsp文件,负责注销:

<%@ page contentType=”text/html;charset=GBK”%>

<%

session.invalidate() ;

%>

 

新建welcome.jsp,表示欢迎界面:

<%@ page contentType=”text/html;charset=GBK”%>

<%

if(session.getAttribute(“name”)!=null){ // 合法用户

%>

<h1>欢迎光临!</h1>

<h2><a href=”logout.jsp”>注销</a></h2>

<%

}
else{

%>

<h1>请先<a href=”login.jsp”>登陆</a></h1>

<%

}

%>

 

 

 

 ------------------完整例子-----------------------------------------------

 

 

1.bankname.jsp

<html>
<head>
<title>
First Page
</title>
</head>
<body>
<form method="post" action="custid.jsp">
what is you Bank Name?
<input type="text" name="bank" ></input>
<p><input type="submit" value="submit" ></input></p>
</form>
</body>
</html>

 

2.custid.jsp

<html>
<head>
<title>
Second Page
</title>
</head>
<body>
<%! String name = ""; %>
<%
name
= request.getParameter("bank");
session.putValue(
"bankname",name);
%>
The name is <%= name %>
<p>
<form method="post" action="bank.jsp" >
what is your customer ID?
<input type="text" name="custid" ></input>
</p>
<input type="submit" value="submit" ></input>
</form>
</body>
</html>

 

3.bank.jsp

 

<html>
<head>
<title>
Third Page
</title>
</head>
<body>
<%!
String name = "";
String CustId = "";
%>
<%
CustId
= request.getParameter("custid");
name
= (String)session.getValue("bankname");
%>
Your bank name is <b><%= name %></b>
<p>
Your customer ID is <b><%= CustId%></b>
</p>
</body>
</html>

 

posted @ 2011-12-31 16:30  天涯行客  阅读(2204)  评论(1编辑  收藏  举报
天道酬勤--埋头静默--厚积薄发