jquery 如何調(diào)用java中的session 或者request jquery如何獲得java后臺(tái)session中的參數(shù)
session對(duì)象用于在會(huì)話范圍內(nèi),記錄每個(gè)客戶端的訪問(wèn)狀態(tài),以便于跟蹤每個(gè)客戶端的操作狀態(tài)。在會(huì)話中存儲(chǔ)的信息,在瀏覽器發(fā)出后續(xù)請(qǐng)求時(shí)可以獲取這些會(huì)話的有效數(shù)據(jù)。
在jsp頁(yè)面中可以直接使用session對(duì)象,也可以通過(guò)pageContext.getSession()或request.getSession()方法重新獲取session對(duì)象。
session對(duì)象可以保存用戶的登錄信息,實(shí)現(xiàn)購(gòu)物車功能等。
HTTP協(xié)議是一種無(wú)狀態(tài)協(xié)議。客戶向服務(wù)器發(fā)出請(qǐng)求request,然后服務(wù)器返回響應(yīng)response,連接就被關(guān)閉了。在服務(wù)器端不保留連接的有關(guān)信息,因此當(dāng)下一次連接時(shí),服務(wù)器端已沒有以前的連接信息了,無(wú)法判斷這一次連接和以前的連接是否屬于同一個(gè)客戶。因此,必須使用會(huì)話記錄有關(guān)連接的信息。
從客戶打開瀏覽器連接到服務(wù)器,到客戶關(guān)閉瀏覽器離開這個(gè)服務(wù)器,稱做一個(gè)會(huì)話。當(dāng)客戶訪問(wèn)服務(wù)器是,可能會(huì)反復(fù)連接這個(gè)服務(wù)器上的幾個(gè)頁(yè)面、反復(fù)刷新一個(gè)頁(yè)面或不斷地向一個(gè)頁(yè)面提交信息等,服務(wù)器應(yīng)當(dāng)通過(guò)某種方法知道這是同一個(gè)客戶,這時(shí)就需要session對(duì)象。
Jquery Json調(diào)用在日常工作中非常好用,只需要Json數(shù)據(jù)就可以了。
session的工作原理如下:
1.客戶首次訪問(wèn)服務(wù)器的一個(gè)頁(yè)面時(shí),服務(wù)器就會(huì)為該客戶分配一個(gè)session對(duì)象,同時(shí)為該session對(duì)象指定一個(gè)唯一的ID,并且將該ID號(hào)發(fā)送到客戶端并寫入到cookie中,使得客戶端與服務(wù)器端的session建立一一對(duì)應(yīng)關(guān)系。
2.當(dāng)客戶繼續(xù)訪問(wèn)服務(wù)器上的其他資源時(shí),服務(wù)器不再為該客戶分配新的session對(duì)象,直到客戶端瀏覽器關(guān)閉、超時(shí)或調(diào)用session的invalidate()方法使其失效,客戶端與服務(wù)器的會(huì)話結(jié)束。
3.當(dāng)客戶重新打開瀏覽器訪問(wèn)網(wǎng)站時(shí),服務(wù)器會(huì)重新為客戶分配一個(gè)session對(duì)象,并重新分配sessionID。
session對(duì)象主要用于屬性操作和會(huì)話管理,常用方法如下:
1.public void setAttribute(Sting
name, Object
value),設(shè)定指定名字的屬性的值,并將它添加到session會(huì)話范圍內(nèi),如果這個(gè)屬性是會(huì)話范圍內(nèi)存在,則更改該屬性的值。
2.public Object getAttribute(String
name),在會(huì)話范圍內(nèi)獲取指定名字的屬性的值,返回值類型為object,如果該屬性不存在,則返回null。
3.public void removeAttribute(String
name),刪除指定名字的session屬性,若該屬性不存在,則出現(xiàn)異常。
4.public void
invalidate(),使session失效。可以立即使當(dāng)前會(huì)話失效,原來(lái)會(huì)話中存儲(chǔ)的所有對(duì)象都不能再被訪問(wèn)。
5.public String getId(
),獲取當(dāng)前的會(huì)話ID。每個(gè)會(huì)話在服務(wù)器端都存在一個(gè)唯一的標(biāo)示sessionID,session對(duì)象發(fā)送到瀏覽器的唯一數(shù)據(jù)就是sessionID,它一般存儲(chǔ)在cookie中。
6.public void setMaxInactiveInterval(int interval),設(shè)置會(huì)話的最大持續(xù)時(shí)間,單位是秒,負(fù)數(shù)表明會(huì)話永不失效。
7.public int getMaxInActiveInterval(),獲取會(huì)話的最大持續(xù)時(shí)間。
8.使用session對(duì)象的getCreationTime()和getLastAccessedTime()方法可以獲取會(huì)話創(chuàng)建的時(shí)間和最后訪問(wèn)的時(shí)間,但其返回值是毫秒,一般需要使用下面的轉(zhuǎn)換來(lái)獲取具體日期和時(shí)間。
Date creationTime = new
Date(session.getCreationTime());
Date accessedTime = new
Date(session.getLastAccessedTime());
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%>
<%
String
path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<base
href="<%=basePath%>">
<title>session對(duì)象方法</title>
<meta
http-equiv="pragma" content="no-cache">
<meta
http-equiv="cache-control" content="no-cache">
<meta
http-equiv="expires" content="0">
<meta
http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta
http-equiv="description" content="This is my
page">
<!--
<link rel="stylesheet" type="text/css"
href="styles.css">
-->
</head>
<body>
<b>
會(huì)話ID:<%=session.getId() %>
<br>
是否新會(huì)話:<%=session.isNew()
%><br>
設(shè)置和獲取屬性對(duì)象:用戶名 =
<%session.setAttribute("用戶名","陳寧");
%>
<%=session.getAttribute("用戶名")
%><br>
<%
Date creationTime = new
Date(session.getCreationTime());
Date accessedTime = new
Date(session.getLastAccessedTime());
%>
會(huì)話創(chuàng)建時(shí)間:<%=creationTime
%><br>
上次訪問(wèn)時(shí)間:<%=accessedTime
%><br>
會(huì)話持續(xù)時(shí)間(s):<%=session.getMaxInactiveInterval()
%><br>
<%session.setMaxInactiveInterval(12);
%>
修改后的會(huì)話持續(xù)時(shí)間(s):<%=session.getMaxInactiveInterval()
%><br>
<%session.invalidate();
%>
</b>
</body>
</html>
Jquery Json調(diào)用在日常工作中非常好用,只需要Json數(shù)據(jù)就可以。
如果是你想在這2個(gè)范圍中取值
直接:
<script>
var result = "${sessionScope.引用明}";
//這樣就取到了,然后操作jquery就是
</script>
謝謝
直接用就是了唄request
那個(gè)不能調(diào)用,你應(yīng)該改變你功能的實(shí)現(xiàn),用另一種方法解決問(wèn)題
相關(guān)評(píng)說(shuō):
宣漢縣幅面: ______ $.post('xxxxxxx.do',{'msg':msg},function(data){<br> alert(data);<br>});
宣漢縣幅面: ______ 對(duì)于把某一對(duì)象置于session范圍內(nèi),并在JSP頁(yè)面中提取session中放進(jìn)去的對(duì)象的過(guò)程像J2EE開發(fā)的程序員應(yīng)該都熟悉,例如: <br>Servlet代碼: <br>List<String> list=new ArrayList<String>(); <br>list.add("王利虎"); <br>HttpSession ...
宣漢縣幅面: ______ 為了方便網(wǎng)頁(yè)和Android應(yīng)用的交互,Android系統(tǒng)提供了WebView中JavaScript網(wǎng)頁(yè)腳本調(diào)用Java類方法的機(jī)制.只要調(diào)用addJavascriptInterface方法即可映射一個(gè)Java對(duì)象到JavaScript對(duì)象上.1、映射Java對(duì)象到JavaScript對(duì)象上 代碼如下:...
宣漢縣幅面: ______ jQuery里的函數(shù)的3方式:函數(shù)聲明、函數(shù)表達(dá)式和匿名函數(shù).函數(shù)聲明:function Dosth(){......}; 函數(shù)表達(dá)式:var Dosth=function(){......}; 匿名函數(shù):function(){.......} 這三種方式的調(diào)用1、將包含函數(shù)的js文件引入到你所要執(zhí)行的html頁(yè)...
宣漢縣幅面: ______ jsp調(diào)用java類的步驟: 1.新建一個(gè)項(xiàng)目,在src文件夾下添加一個(gè)包:如:tianaoweb.com; 2.再在包中添加一個(gè)類:如 package com; public class test { public String sd(){ return "sd"; } }3.在默認(rèn)的首頁(yè)index.jsp(當(dāng)然也可以自己新建一個(gè)jsp文件)的開頭引入<%@ page import= "tianaoweb.com.* "%>4.在<body> </body>中添加相應(yīng)的java代碼片:如:<% String str; test te=new test();%><%=te.sd() %>
宣漢縣幅面: ______ 一樣的配置,只不過(guò)如果你要使用AJAX,那么在Action中就return null;好了,return之前使用request.write()方法輸出JSON數(shù)據(jù)就可以!
宣漢縣幅面: ______ 通常處理這種情況都是用ajax(異步請(qǐng)求)來(lái)處理, 發(fā)一個(gè)ajax請(qǐng)求到你的java類中,返回?cái)?shù)據(jù)看看是否正確再做處理 ajax調(diào)用方式 $.ajax({ type: "post", //提交方式 url: "test.action", / /提交的地址(RUL) data: "name='張三'", //提交的數(shù)據(jù)庫(kù)(key-value形式,多個(gè)參數(shù)用&分割) dataType: "json", //服務(wù)器返回的數(shù)據(jù)類型 success: function(data){ //執(zhí)行成功后回調(diào)的方法 alert(data); } }); 使用這個(gè)ajax別忘記導(dǎo)入jquery
宣漢縣幅面: ______ jQuery是不能直接從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)的,只能是jQuery將需要查詢或者想要讀取的數(shù)據(jù)通過(guò)ajax等發(fā)送給后臺(tái)編程語(yǔ)言php、Java等,由后臺(tái)語(yǔ)言讀取數(shù)據(jù)庫(kù)后返回jQuery.工具原料:編輯器1、使用jQuery發(fā)送需要查詢的數(shù)據(jù)給后臺(tái),然后獲取后臺(tái)返回的數(shù)據(jù),簡(jiǎn)單的代碼如下: <script type="text/javascript"> $.ajax({ type:"post", url:"test.php",//發(fā)送的后臺(tái)地址 data:{'name':'tom'}, success:function(data){ //此處處理后臺(tái)返回的數(shù)據(jù) } }); </script>2、一般是將后臺(tái)的數(shù)據(jù)在按照需求現(xiàn)實(shí)在頁(yè)面上.
宣漢縣幅面: ______ 思路: 通過(guò)頁(yè)面提交或者ajax等方式把頁(yè)面參數(shù)傳入到j(luò)ava中. 代碼示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <select name="test"name="test"onchange="test1($(this).val())"> <option value="1">test</option> </select> <div ...
宣漢縣幅面: ______ 一、網(wǎng)頁(yè)的JS代碼調(diào)用ANDROID中JAVA代碼的方法 在網(wǎng)頁(yè)中調(diào)用java代碼、需要在webview控件中添加javascriptInterface contentWebView = (WebView) findViewById(R.id.webview);//啟用javascript contentWebView.getSettings()....