session对象

session对象

 

一.session对象和application对象不同,application对象只有一个,它可以绑定若干个类似于全局变量的参数或者java对象,而session对象是系统为每一个登陆的用户创建的,是独一无二的,相当于局部参数或者Java对象。

session是javax.servlet.http.HttpSession接口的实例对象。因此,session的方法就相当于是javax.servlet.http.HttpSession接口的方法。

 

 

二.获取session对象常用的方法

1)

使用session关键字直接引用session

<%
session.Method();
%>

 

 

2)通过request对象的getSession方法,不过,这个获取的HttpSession对象不可以命名为request。

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
 HttpSession mysession=request.getSession(true);
 out.println(mysession.getId());
 out.println("<br>");
 out.println(session.getId());
%>
</body>
</html>
 

 

 

3)使用pageContext对象的getSession()方法

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
 HttpSession mysession=request.getSession();
 HttpSession mysession2=pageContext.getSession();
 out.println(mysession.getId()+"<br>");
 out.println(session.getId()+"<br>");
 out.println(mysession2.getId()+"<br>");
%>
</body>
</html>
 

 

三.session的主要方法

1)getValue(String name)

有些类似于getAttribute(),可以通过putValue()存储变量的值,removeValue()删除变量。

<%
String username=(String)session.getValueNames("username");
Vector vector=(Vector)session.getValue("vector");
%>

 

2)getValueNames()

该方法可以返回和当前session绑定在一起的参数或者Java对象的名字,该方法返回的是一个字符串数组。

 

3)getCreationName()

该方法可以返回当前session对象创建的时间单位以毫秒作为单位,从1970年1月1日开始。

 

4)getID()

系统每生成一个session,都会赋予其一个ID,通过ID来鉴定不同的用户。

 

5)getLastAccessedTime()

该方法返回当前session最后一次被操作的时间。

 

6)getMaxInactiveInterval()

该方法可以获得当前的session对象的最大休眠时间。

 

7)setMaxInactiveInterval()

设定最大的休眠时间,通常和getMaxInactiveInterval()搭配使用。

 

8)removeValue(String name)

将某个参数或者Java对象和session解除绑定。

 

9)invaliate()

清除当前的session对象,将所有的参数或者Java对象与session解除绑定。

 

例子:

SessionExam1.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<p>
<h1>Where will your balance take you?</h1>
<br>
<%--Get parameters from the request object--%>
<% String firstName = request.getParameter("fName");%>
<% String accountBalance1 = request.getParameter("bal");%>
<%--Convert the bal parameter from String to double--%>
<% double accountBalance2 = Double.valueOf(accountBalance1).doubleValue();%>
<%--
Write input parameters to the session object
The session object cannot store a double value.
You must first convert it to a Double.
--%>
<%
session.putValue("userName", firstName);
Double tempAccountBalance = new Double(accountBalance2);
session.putValue("userBalance", tempAccountBalance);
%>
<%--Output results--%>
Balance for <%=firstName%>: <%=accountBalance2%><br>
<br><br>
Would you link to <A href="SessionExam2.jsp" mce_href="SessionExam2.jsp">invest your money</a>?
<br><br>
Do you need a <a href=" SessionExam3.jsp" mce_href=" SessionExam3.jsp">job</a>
</body>
</html>

 


SessionExam2.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
 <%--Get name from the session object--%>
 <%--
 The SessionExam2.jsp page examines the client`s name and balance from the
 session object and either offers investment options or prompts the client to get a job!
 --%>
 <%String fName=(String)session.getValue("userName");%>
 <h2>Hi <%=fName%></h2>
 <%--Get balance and convert to double--%>
 <%
 Double tempBal=(Double)session.getValue("userBalance");
 double accountBalance=tempBal.doubleValue();
 %>
 <%--Got enough money to invest?--%>
 <%
 if(accountBalance>100.0)
 {%>
  Your balance of $<%= accountBalance %> is sufficient for investing.
 We offer a number of investment opportunities, including: <br>
  <li>Bonds</li>
  <li>CDs</li>
  <li>Mutual funds</li>
 <%}%>
 <%--Is Balance too low?--%>
 <%
 if(accountBalance<=100.0)
 {
%>
  Your balance is too low for investing. It looks like you need a
  <a href="SessionExam3.jsp" mce_href="SessionExam3.jsp">job</a>.
 <%
 }
 %>
</body>
</html>

 


SessionExam3.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
 <%--
 The SessionExam3.jsp page greets the user using the name passed
 in the session object and lists available jobs:
 --%>
 <%--Get parameters from the session object--%>
 <%String fName=(String)session.getValue("userName");%>
 <h2>Hi <%=fName%></h2>
 <h2>Available positions include:</h2>
 Software Engineer<br>
 QA<br>
 Technical Writer<br>
</body>
</html>
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值