A. jsp中如何獲取session的值 (第三方獲取session的值)
<form action="Appear.jsp" method="get" name="form1">
<%
Object sessionValues=sessions.getAttribute("values1");
%>
從Session中取出值:<%=sessionValues %>
<br />
<input type="submit" name="submit" value="超鏈接" >
</form>
首先你要搞懂session 是什麼東西,它的作用范圍是什麼!
Request 是在回一次答請求范圍
Session 是在一次會話中,也就是說,你從一開始進入頁面到你離開頁面時,都屬於一次會話當中,也就是說它的作用范圍比Request要廣,你在任何頁面都可以用session.getAttribute("values");得到values的值!
所以若要會使用就要先知道是什麼意思!
B. jsp 中設置session中 某一值的過期時間
jsp中設置session的超時時間是固定的,不能針對某一變數設置。
方法一:在web.xml中配置超時時內間:
<web-app ...>
容<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>
方法二:在應用程序中用setMaxInactiveInterval()方法設置:
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);
C. jsp頁面上怎樣獲取message的值
message放在session 就可以用以下方法取:
D. jsp中session有哪些方法,都怎麼用
Jsp的session是使用bean的一個生存期限,一般為page,session意思是在這個用戶沒有離開網站之前一直有效,如果無法判斷用戶何時離開,一般依據系統設定,tomcat中設定為30分鍾.
我們使用seesion功能,可以達到多個jsp程序從操作同一個java bean, 那麼這個java bean可以作為我們傳統意義上的"全局變數池".(在java中我們可以使用static靜態化一個變數和方法,使用singleton唯一化對象.)
在項目實踐中,我們Jsp程序中很多參數需要從資料庫中讀取,有的參數實際讀取一次就可以,如果設計成每個用戶每產生一個頁面都要讀取資料庫,很顯然,資料庫的負載很大,同時也浪費時間,雖然可能有資料庫連接池優化,但是盡量少使用資料庫是我們編程的原則.
比如,我們的test.jsp 和test1.jsp都需要得到一個參數userdir,這個userdir是從資料庫中得知,使用session將大大優化性能,程序如下:
設計一個javabean 存儲userdir.
public class UserEnv {
private String userdir = "";
private String userurl = "";
public UserEnv(){
//構建方法初始化userdir,可以從資料庫中讀取,這里簡單給值ppp
userdir="pppp";
System.out.println("init userdir, one time");
}
public String getUserdir() throws Exception{
return userdir;
}
}
test1.jsp程序:
this is test1.jsp:
test2.jsp程序:
this is test2.jsp:
無論用戶先調用test1.jsp還是test2.jsp, java bean UserEnv總是先初始化一次, 由於這個bean存在周期是seesion,因此該用戶第二次以後只要在seesion有效期內再調用,myenv.getUserdir()將直接從bean內存中讀取變數,不必再初始化.這樣提高速度,又減少資料庫訪問量.
這樣,我們就有了一個jsp程序之間共享變數或方法 的實現辦法
E. jsp session 中屬性的設置與數據填充
在你的jsp頁面中就可以設置阿setAttribute("username",username);
在servlet,也可以設置,或者過濾器!專
一個sesstion存活於你正個屬訪問過程!
關閉瀏覽器,它會自動消亡!
當然你可以手動讓它掛了,比如"退出系統"功能的設置