㈠ jsP中的session的用法
1、以JSP使用session對象為例,首先打開Eclipse,新建一個web工程。
㈡ 怎麼在jsp界面 獲取session的值
jsp獲取action傳來來的session值問題,有以下幾種方法自:
比如action中有個session ("sessionid","11111111");
一、用struts標簽獲取:<s:property value="#session.sessionid"/>;
二、<%=request.getSession.getAttribute("sessionid");> session也是內置對象之一,可以直接用session,比request.getSession方便多了,也可以寫成<%=session.getAttribute("sessionid");>;
三、el表達式獲取:${sessionScope.sessionid};
如果賦值的是個bean,也是一樣的,類似於${sessionScope.bean.beansth}。
㈢ JSP中的session存值
session沒有大小限制,理論上可以有多個attr只要變數名即key值不同就行。但是session是放到
伺服器端
的內存中的,所以放多了信息也對性能有影響。所以不是必要的東西盡量不要放在session中。
㈣ 請給我講下jsp session傳值
一、在second.jsp中取first中的表單信息(用request.getParameter()方法),將這些變數存入session中,語法內為session.setAttribute(String key, Object value):
設有接收表容單語句:String user_name = requrequest.getParameter("user_name ");
那麼將其放入session中key為name的語句為:session.setAttribute("name",user_name);
二、在third.jsp頁面中要輸出second的信息有兩種方法:1.接收值然後直接輸出;2.接收值,存入session中(方法如第一步)再從session中取出值。
輸出first.jsp的值:從session中取出存入的信息,語句如下:
out.println( (String)session.getAttribute("name") );
㈤ JSP中,如何從session中取值和存值
jsp頁面 通過抄EL表達式取值襲。 ${sessionScope.存屬性名}
存數據是在後台, 比如存入 session 中: 用 request.getSession().setAttribute("屬性名","值");
你也可以存到其他隱式對象中 (request,out,pageContext,response)
㈥ JSP 如何顯示Session的值
Jsp中顯示Session:
session是jsp的內抄置對象,所以可以直接寫在jsp的
<%
session.setAttribute("a",b);//把b放到session里,命名為a,
StringM=session.getAttribute(「a」).toString();//從session里把a拿出來,並賦值給M
%>
㈦ JSP中如何改變SESSION變數的值急!在線等!
當然復可以 jsp跳轉時候 接收的制servlet 裡面的HttpServlet 的request 有一個方法就是request.getSession 就可以取道session了 而session 是你的整個一次服務就有一個
你可以通過session。setAttribute(「」,「」)進行賦值和改變 還有getAttribute方法,但是取出來的是字元串 需要進行類型轉換
㈧ 如何在html中獲取jsp中的session的值
伺服器跟蹤用戶狀態有好幾種方法,其中一種就是,伺服器保持session,給客戶端一個sessionid,客戶端每次發送請求時,會把這個sessionid提交給伺服器(這是瀏覽器乾的事),伺服器根據這個sessionid找到相應的session,如果你用的jsp,jsp引擎(比如tomcat)會吧這個session作為一個實例變數放到jsp頁面里,你可以直接使用。如果是html文件,jsp引擎會直接發送給客戶端html文件的內容。
客戶端的js訪問cookie的方法只能訪問存儲在客戶端的cookie(使用js或session的cookie存儲的)。
一般來說,只有伺服器端的CGI程序(ASP、PHP、JSP)具有session會話功能,用來保存用戶在網站期間(會話)的活動數據信息,而對於數量眾多的靜態頁面(HTML)來說,只能使用客戶端的cookies來保存臨時活動數據,但對於cookies的操作是個很煩瑣的過程,遠沒有對於session操作那樣簡便。
為此,本文向讀者推薦一種在DHTML中的解決方案「Persistence技術」,使得在靜態頁面中也能使用session會話功能。
使用保持(Persistence)技術讓我們能夠在當前會話過程中保存一些數據對象到客戶端,它減少了對伺服器的訪問請求,充分發揮了客戶端計算機的數據處理能力,從而也整體提升了頁面顯示效率。
Microsoft Internet Explorer 5瀏覽器和以後的版本都支持使用狀態保持(Persistence)技術,它有以下幾種行為可供調用:
saveFavorite—當頁面被添加到收藏夾時保存頁面狀態和信息
saveHistory—在當前會話中保存頁面狀態和信息
saveSnapshot—當頁面被保存到硬碟時,保存頁面狀態和信息persists
page state and information directly in the page when users save the Web page to
their hard disk.
userData—在當前會話中用XML格式保存頁面狀態和信息 網頁製作
Persistence技術打破了以前使用使用cookies和session的傳統,它繼承了以前cookies的一些安全策略,同時也增加了存儲和管理數據的能力。我們的每個頁面有64KB的用戶數據存儲容量,對於每個站點總計有640KB的存儲上限。
Persistence技術存儲的數據格式符合XML標准,所以可以使用DOM技術中的getAttribute和setAttribute方法來存取數據。
下面是一個Persistence技術的典型應用,通過對Persistence存儲數據的分析,使得靜態頁面具有驗證功能。
實際判斷過程是這樣的:
有三個對象:遊客V、導航頁面A、內容頁面C
遊客V只能通過導航頁面A的鏈接才能看到內容頁面C;
如果遊客V是通過其它途徑來訪問內容頁面C(比如通過其它網站的超鏈接、直接在IE地址欄中輸入網址訪問等),內容頁面C將自動提示版權信息,顯示空白頁。
具體實現步驟:
一、在「導航頁面」中加入一個STYLE用來定義persistent類,同時加入存儲函數fnSave用來授權。
<STYLE>
.userData {behavior:url(#default#userdata);}
</STYLE>
<SCRIPT language=javascript>
網頁編程
function fnSave(){
oPersistDiv.setAttribute("bIsValid","true");
oPersistDiv.save("oXMLStore");
}
</SCRIPT>
二、在「導航頁面」的<body>和</body>區域中定義一個層用來標識Persistence對象
<DIV CLASS=userData ID="oPersistDiv"></DIV>
三、在「導航頁面」的超鏈接屬性中加入一條語句用來調用函數fnSave:
<a href='redhat2.htm' onmousedown="fnSave()">
接下來,為「內容頁面」加入驗證功能:
四、在「內容頁面」中加入一個STYLE用來定義persistent類,同時加入存儲函數fnLoad用來判斷合法性。
<STYLE>
.userData {behavior:url(#default#userdata);}
</STYLE>
<SCRIPT>
var bPageValid=false;
function fnLoad(){
oPersistDiv.load("oXMLStore");
if((oPersistDiv.getAttribute("bIsValid"))&&(oPersistDiv.getAttribute("bIsValid")=="true")){
bPass=true;
網頁模板
}
else{
bPass=false;
}
oPersistDiv.setAttribute("bIsValid","false");
oPersistDiv.save("oXMLStore");
if(bPass==false){
var sError="來源不明,請您通過授權網站訪問我們.";
alert(sError);
location.href="about:blank";
}
}
</SCRIPT>
五、修改「內容頁面」的<body>區域如下:
<BODY onload="fnLoad()">
<DIV CLASS=userData ID="oPersistDiv"></DIV>
從以上範例可看出,通過persistence的使用,使得普通的靜態內容頁面具有了session功能,一般的不敏感信息完全可以通過session保存在客戶端。
另外,如果不明白persistence的使用,也可以這樣,你的首頁上有個form,用來提交用戶名和密碼。如果你把首頁換成html頁面,完全可以,不過要在其他地方接收用戶名和密碼(比如logon.jsp)。form的action設為logon.jsp。很簡單。使用form的action來轉移接受session的地方,首頁就可以用靜態了
㈨ jsp頁面怎麼取session的值
jsp獲取action傳來的session值問題有一下幾種方法:
比如action中有個session ("sessionid","11111111")
一、用struts標簽獲取:<s:property value="#session.sessionid"/>
二專、<%=request.getSession.getAttribute("sessionid");> session也是內置對象之一,可以屬直接用session,比request.getSession方便多了,也可以寫成<%=session.getAttribute("sessionid");>
三、el表達式獲取:${sessionScope.sessionid}
如果賦值的是個bean,也是一樣的,類似於${sessionScope.bean.beansth}
㈩ jsp中session傳值的問題
如果是要利用SESSION將2.jsp傳到1.jsp,要保證1.jsp和2.jsp在一個會話期(即同在1個session),只要用超連接的形式到1.jsp即可.如果是要提交表單的話,你form里的action屬性要是post方式,即<form name="XXX" action="post">.在2.jsp里寫setAttribute,1.jsp寫getAttribute是絕對沒有問題的.
如果是再提交給資料庫的話,加上以下代碼,以SQL SERVER為例:
<%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%>//這個要在頁面頂頭寫
<% request.setCharacterEncoding("gb2312");%>
<%
//3個變數分別是String,String,int型
String a=(String)session.getAttribute("你在setAttribute例設的變數名1");
String b=(String)session.getAttribute("你在setAttribute例設的變數名2");
int c=Integer.parseInt(session.getAttribute("你在setAttribute例設的變數名3"));
//連接資料庫
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String strURL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=資料庫名";
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(strURL,user,password);
Statement stmt=conn.createStatement();
//編寫SQL語句,欄位1,2,3為資料庫中的欄位名
String strSQL="insert into 數據表名(欄位1,欄位2,欄位3) values ('"+a+"','"+b+"',"+c+")";
stmt.executeUpdate(strSQL);
out.print("添加成功");
stmt.close();
conn.close();
}
catch(Exception e)
{
System.out.println(e);
}
%>
應該解決你的問題了吧
補充:如果是超連接的形式,在超連接到的頁面後加?再加上要傳的變數及值.舉例:那麼在2.jsp里<a href="1.jsp?變數1=XXX&&變數2=YYY&&變數3=ZZZ">轉向1.jsp頁面</a>
這其中&&表示連接符
還又什麼問題?