
1 <1>Ajax交互方式 2 Ext.Ajax.request( 3 { 4 //被用來向服務器發起請求默認的url 5 url : "", 6 //請求時發送后台的參數,既可以是Json對象,也可以直接使用“name = value”形式的字符串 7 params : { 8 name:'value' 9 }, 10 //請求時使用的默認的http方法 11 method : "post", 12 //請求成功時回調函數 13 success : function() { 14 Ext.ux.Toast.msg("信息提示", "成功刪除所選記錄!"); 15 }, 16 //請求失敗時回調函數 17 failure : function() { 18 Ext.ux.Toast.msg("信息提示", "信息刪除出錯,請聯系管理員!"); 19 } 20 } 21 ); 22 <2>Form交互方式 23 this.formPanel = new Ext.FormPanel( 24 { 25 url : "" 26 } 27 ); 28 //提交數據 29 formPanel.getForm().submit( 30 { 31 method : "post", 32 params : { 33 name:'value' 34 }, 35 waitMsg : "正在提交數據", 36 success : function(b, c) { 37 Ext.ux.Toast.msg("操作信息", "提交成功!"); 38 }, 39 failure : function(b, c) { 40 Ext.ux.Toast.msg("操作信息", "提交失敗!"); 41 } 42 } 43 ); 44 //加載數據 45 formPanel.getForm().load( 46 { 47 deferreRender : false, 48 url : "", 49 method : "post", 50 waitMsg : "正在載入數據", 51 success : function(e, g) { 52 var num = g.result.data.num; 53 var numCmp = Ext.getCmp("num"); 54 numCmp.setValue(num); 55 Ext.ux.Toast.msg("操作信息", "載入成功"); 56 }, 57 failure : function(a, b) { 58 Ext.ux.Toast.msg("操作信息", "載入失敗"); 59 } 60 } 61 );

1 2 <table width="283" height="85" border="1" cellpadding="0" cellspacing="0"> 3 <form name="name1" method="post" action="abc.php"> 4 <tr> 5 <td width="114" height="30" align="center" >管理員:</td> 6 <td width="163" height="30" align="center"><input name="username" type="text" /></td> 7 </tr> 8 <tr> 9 <td align="center">密 碼:</td> 10 <td height="30" align="center"><input name="password" type="password" /></td> 11 </tr> 12 <tr> 13 <td> </td> 14 <td height="25"> <input name="submit" type="submit" value="submit" /></td> 15 </tr> 16 </form> 17 </table> 18 <?php 19 if(!isset($_POST['submit'])) 20 return ; 21 if($_POST['submit']=='submit'){ 22 $username = $_POST['username']; 23 $password = $_POST['password']; 24 } 25 echo <<<EOT 26 <table width="284" border="1" cellpadding="0" cellspacing="0"> 27 <tr> 28 <td height="25" align="center"> 管理員:$username</td> 29 </tr> 30 <tr> 31 <td height="25" align="center" valign="middle" class="style2">密碼:$password</td> 32 </tr> 33 </table> 34 EOT; 35 ?>
今天就嵌入式設備的網頁訪問做了一下思路的整理。
1.設備的頁面訪問不只是有web前端,還有服務器端的編程。我之前非常看不起PHP,因為一直以為PHP就是一類ASP.NET級別的語言。現在理清思路之后才發現PHP主要做的是CGI的工作,也就是網站的服務器端的數據處理的工作。上面的代碼是ExtJS中,需要與后端代碼進行數據交互的幾個例子。
2.第二部分代碼就是PHP獲取前端的提交數據的一個例子。在C#中貌似之前用過HttpWebRequest/HttpWebResponse來進行與后端數據的交互,因為這個時候已經不用ASP.net這種“一體化”的模式了,使用的是MVC的架構,所以能夠了解一點。
===========================================================================================================
后面說一下Cookie以及session的辨析。
1.session保存在服務器,客戶端不知道其中的信息;cookie保存在客戶端,服務器能夠知道其中的信息。
2.session中保存的是對象,cookie中保存的是字符串。
3.session不能區分路徑,同一個用戶在訪問一個網站期間,所有的session在任何一個地方都可以訪問到。而cookie中如果設置了路徑參數,那么同一個網站中不同路徑下的cookie互相是訪問不到的。
4.session一般也需要借助cookie來實現目的。
因為http是無狀態的協議,客戶每次讀取web頁面時,服務器都打開新的會話,而且服務器也不會自動維護客戶的上下文信息,那么要怎么才能實現網上商店中的購物車呢,session就是一種保存上下文信息的機制,它是針對每一個用戶的,變量的值保存在服務器端,通過SessionID來區分不同的客戶,session是以cookie或URL重寫為基礎的,默認使用cookie來實現,系統會創造一個名為JSESSIONID的輸出cookie,我們叫做session cookie,以區別persistent cookies,也就是我們通常所說的cookie,注意session cookie是存儲於瀏覽器內存中的,並不是寫到硬盤上的,這也就是我們剛才看到的JSESSIONID,我們通常情是看不到JSESSIONID的,但是當我們把瀏覽器的cookie禁止后,web服務器會采用URL重寫的方式傳遞Sessionid,我們就可以在地址欄看到 sessionid=KWJHUG6JJM65HS2K6之類的字符串。
明白了原理,我們就可以很容易的分辨出persistent cookies和session cookie的區別了,網上那些關於兩者安全性的討論也就一目了然了,session cookie針對某一次會話而言,會話結束session cookie也就隨着消失了,而persistent cookie只是存在於客戶端硬盤上的一段文本(通常是加密的),而且可能會遭到cookie欺騙以及針對cookie的跨站腳本攻擊,自然不如 session cookie安全了。
通常session cookie是不能跨窗口使用的,當你新開了一個瀏覽器窗口進入相同頁面時,系統會賦予你一個新的sessionid,這樣我們信息共享的目的就達不到了,此時我們可以先把sessionid保存在persistent cookie中,然后在新窗口中讀出來,就可以得到上一個窗口SessionID了,這樣通過session cookie和persistent cookie的結合我們就實現了跨窗口的session tracking(會話跟蹤)。
在一些web開發的書中,往往只是簡單的把Session和cookie作為兩種並列的http傳送信息的方式,session cookies位於服務器端,persistent cookie位於客戶端,可是session又是以cookie為基礎的,明白的兩者之間的聯系和區別,我們就不難選擇合適的技術來開發web service了
參考:
http://www.ylzx8.cn/web/web/992672.html
http://www.cnblogs.com/xulb597/archive/2012/07/02/2573252.html
http://blog.csdn.net/sjf0115/article/details/8963964