1. 程式人生 > >對request.getSession().setAttribute和request.getSession().getAttribute()的理解

對request.getSession().setAttribute和request.getSession().getAttribute()的理解

對內建的物件request就不多講,就直接進入主題。void getSession()方法相當於得到一個session物件,而void setAttribute()和String Attribute分別是對屬性賦值和得到屬性值的方法。

request.getSession().setAttribute和request.getSession().getAttribute()就是分別對session物件賦值和得到物件屬性的值。那麼問題來了。這樣的屬性值是否具有了session的特性呢。做一個小測驗:


第一個jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String str="huxiwen";

request.getSession().setAttribute("name", str);  //對name物件賦值
out.print(request.getSession().getAttribute("name"));

//取得name物件的值
%>

<!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head></head>


<body>
<a href="RT.jsp">Test</a>  
<!-- 連結到另外一個jsp中,測驗request.getSession().getAttribute("name")的是否會改變 -->
</body>

</html>



RT.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<%
String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

out.println(request.getSession().getAttribute("name") );

%>


執行第一個jsp得到下圖,接著點選Test:

屬性值沒有改變,說明這樣得到的屬性值同樣具有session物件