① 在jsp中使用js怎樣才能獲取session的值
JS是不能讀取Session中的值的 。
session是伺服器對象,javascript是客戶端腳本,你能做的操作就是把這個值用<%=%>輸出到頁面的javascript中參與運算,而無法直接用js調用的。
方法:
做一個AJAX來請求伺服器, 返回session中的值 。
當然也可以在JSP中使用<%=%>這種東西來獲取session中的值,例如:
<script language="JavaScript">
varmyName="<%=session.getAttribute("userName")%>";alert(myName);
</script>
關於上述session中是鍵值對:
EL
session.setAttribute("age","123");
${ sessionScope.age} 在頁面上顯示的就是123了
(此處空一行)
sessionScope指的是session的范圍,類似還有requestScope,pageScope,contextScope
然後後面的age表示的是set屬性時的key值
② 在jsp中怎樣拿到session中所存對象的屬性值
1.後台拿到session裡面的對象的屬性值非常簡單
列: request.getSession().setAttribute("user", user);
註:user是一個對象
2.那麼前台中取出user對象裡面的內容咋樣去去呢,比如說username,password屬性值。
2.1 jsp內嵌java代碼
<%User user1 = (User)request.getSession().getAttribute("user");%>
頁面中可以這么引用
<%=user1.username %>
<%=user1.password%>
擴展: <%
User user2= request.getAttribute("user");
%>
<%=user2.username %>
<%=user2.password%>
2.2 用el表達式
案例:
在Action中保存登錄的基本信息:request.getSession().setAttribute("ijava", str);
在JSP頁面中:${sessionScope.ijava}
java:request.setAttribute("ijava",str);
在JSP頁面中:${#request.ijava}
③ jsp 如何獲得更改後的session
1、首先解釋一下你的疑問,為何取不到最新的session值。x0dx0ajavascript是無法獲取伺服器session中的值的。js只是腳本語言,session是jsp里的對象。x0dx0a使用el表達式獲取值,是在編譯jsp的時候完則搏成的。編譯完成後,就發送到瀏覽器了。瀏覽器執行的html頁面中的值是固定的。x0dx0afunction readSession(){x0dx0a var data = "123"; //編譯jsp的時候,el表達式獲取值${sessionScope.macData}已經被替換成具體的值了x0dx0ax0dx0a}x0dx0a所以,以後無論多少次獲取data,都是123。你孫基祥可以在瀏覽器中右鍵查看生成的html頁面,就明白了。x0dx0a2、如何解決這個問題鋒鄭。x0dx0ax0dx0a可以將macData的值,已json或xml或純文本的方式發送給前台。使用ajax的方式獲取。x0dx0a這里假設你使用了json的方式, response.getWriter().print("{ macData: 具體的值 } ");x0dx0ax0dx0ajquery代碼:x0dx0afunction loadData(){x0dx0a $.get("請求url",function(result){x0dx0a $("#content").html(result.macData);x0dx0ax0dx0a });x0dx0ax0dx0a}
④ jsp中怎麼獲取session
一種方式:
<%
HttpSession session = request.getSession(); //獲取session
Object obj= session.getAttribute("key");
%>
另一種方式:
EL表達式:${sessionScope.key}
⑤ 怎麼在啊jsp里取出session里的內容
第一種方式:在jsp中嵌入java腳本
例如:
<%
session.setAttribute("msg","hello,java!");//下面仍然以此為例
session.getAttribute("msg");
%>
這種方式在初學jsp時使用,後續將不再推薦使用
第二種方式:用EL表達式
${sessionScope.msg}
這種方式避免了在jsp中嵌入java腳本,增強了頁面的可讀性,但在學習了struts2框架後,也很少使用,但比第一種方式要常用。。
第三種方式:需要使用struts2框架
<s:propertyvalue="#session.msg"/>
這種方式需要學習了Struts2框架後使用,通常結合<s:debug/>標簽來調試使用
⑥ Struts2怎麼在jsp頁面獲取Session的值
用struts標簽: <s:property value="#session.hello" />
用EL表達式:${session.hello}
用java代碼:<%=session.getAttribute("hello")%>
⑦ 在jsp頁面怎麼取session里的List
在jsp頁面獲取session里的list集合,步驟如下:
1.首先新建一個DTO(對象傳輸模型),用來測試數內據:
public class User{
private String name;
private String password;
private String email;
}
2.生成它容們的get,set方法.
然後 在處理業務邏輯的類中 User user = new User()。
3.從登錄頁拿到用戶信息,通通傳入這個User對象(user.name="小江";user.password="1234"),這樣,一個user對象就表示一個人的登錄信息了。
再,List<User> list = new ArrayList<User>,把User對象放入list(list.add(user)),
最後,把list加入HttpSession
4.取出來的時候 遍歷list
for(User user:list){
user.name;
user.password
}