會話技術
會話:一次會話中包含多次請求和相應
一次會話:瀏覽器第一次給伺服器資源傳送請求,會話建立,一方斷開位置
功能:在一次會話的範圍內多次請求間,共享資料
方式:
客戶端會話技術:cookies
伺服器端會話技術:session
cookes
概念:客戶端會話技術,將資料儲存在客戶端
使用步驟:
建立cookie物件,繫結資料
new cookie(string name ,string value);
傳送cookie物件
獲取cookie,拿到資料
實現原理
基於響應頭set-cookie和請求頭cookie實現
cookie的細節
一次可不可以傳送多個cookie?
*可以*可以建立多個cookie物件,使用response呼叫多次addcookie方法傳送cookie即可
cookie在瀏覽器中儲存多長時間?
*預設情況下,當瀏覽器關閉後,cookie資料被銷毀
*持久化儲存:
setmaxage(int seconds);
1. 正數:將cookie資料寫到硬碟的檔案中,持久化儲存。cookie存活時間
2. 負數:預設值
3. 零:刪除cookie資訊
cookie能不能存中文?
*在tomcat 8 之前 cookie中不能直接儲存中文資料(需要將中文資料轉碼)
*在tomcat 8 之後 cookie 支援中文資料
cookie共享問題?
1. 假設在乙個tomcat伺服器中,部署了多個web專案,那麼這些web專案中cookie能不能共享?
* 預設情況下cookie不能共享
* setpath(string path): 設定cookie的獲取範圍。預設情況下設定當前的虛擬目錄
如果要共享則可以將path設定為「/」
2. 不同的tomcat伺服器間cookie共享問題?
* setdomain(string path) : 如果設定一級網域名稱相同,那麼多個伺服器之間cookie可以共享
setdomain(".baidu.com"),那麼tieba.baidu.com和news.baidu.com中cookie可以共享
cookie的特點和作用
cookie儲存資料在客戶端瀏覽器
瀏覽器對於單個cookie的大小有限制(4kb)以及對同乙個網域名稱下的總cookie數量也有限制(20個)
*作用:
cookie一般用於儲存少量的不太敏感的資料
在不登入的慶康下,完成伺服器對客戶端的身份識別
三天免登入案例
三天免登入核心內容
伺服器內部:檢驗到cookie附帶資訊,根據處理類對cookie資訊獲取,進行請求**或重定向,向客戶端響應登入成功後的頁面
使用者視角:看到的是登入後的主頁面
對資料庫的優化
1.設計方面:考慮最優字段,盡量不要設定空值資料,雖然稍微的放空填入的資料值會使使用者操作體驗更好
2.查詢方面:盡量使用子查詢完成多個邏輯的sql操作,多使用join,對於臨時表,多使用聯合查詢來解決,這樣能夠保證資料庫整齊性
4.使用索引:索引能夠更有效率的查詢資料
5.查詢時最好不要使用*號查詢概括,在有索引的字段盡量不要使用函式操作,盡量不要使用like進行模糊查詢,因為影響系統效能。
理解servlet邏輯處理
首先理解httpservletrequest
httpservletrequest物件代表客戶端的請求,當客戶端通過http協議訪問伺服器時,http請求頭中的所有資訊都封裝在這個物件中,通過這個物件提供的方法,可以獲得客戶端請求的所有資訊。
request常用方法
獲得客戶端請求引數(客戶端提交的資料)
getparameter(string o) 方法 (常用)
getparametervalues(string name) 方法 (常用)
getparametername() 方法 (不常用)
getparametermap() 方法 (編寫框架時常用)
拓展:request物件也是乙個域物件(map容器),開發通過request物件來實現**,即把資料通過request物件帶給其他web資源處理。request物件作為乙個域物件(map容器)使用時,主要通過以下的四個方法來操作(實現請求**的方式)
理解請求**和重定向的區別
1.乙個web資源收到客戶端請求後,通知伺服器呼叫另外乙個web資源進行處理,稱之為請求**
2.乙個web資源收到客戶端請求後,通知瀏覽器訪問另外乙個web資源進行處理,稱為為重定向
req.getrequestdispatcher(),forward();
request.getrequestdispatcher(),forward();它屬於**,在執行當前檔案的過程中,轉向執行的目標檔案,兩個檔案(當前檔案和目標檔案)屬於同一請求,前後頁面共用乙個request物件,可以通過request.setattribute()和request.getattribute();來傳遞一些資料或者session資訊。
response.senredirect();
response.senredirect(),屬於重定向,相當於客戶端向伺服器端傳送請求後,伺服器端返回乙個響應,客戶端接收到響應之後,又向伺服器傳送了一次請求,一共兩次請求,前後頁面不共用乙個request物件,不能轉向前通過request.setattribute()設定的值。
科普:重要的資料最好不要用請求**,因為如果此時再對當前頁面重新整理的話,就會 重新傳送一次請求,對資料進行修改,這也就是有的人在重新整理一次頁面就增加一條資料的原因。
拓展session、cookie的區別
1、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
2、cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙
考慮到安全應當使用session。
3、session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能
考慮到減輕伺服器效能方面,應當使用cookie。
4、單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie。
登入頁面展示
表單標記
簡單地來說,表單就是在網頁上用於輸入資訊的區域,其主要功能是收集使用者資訊,並將這些資訊傳遞給後台伺服器。表單主要由表單域、表單控制項和提示資訊三部分構成
1.表單域
在html中,在上述語法中,action、method和name是標記中的常用屬性
2.表單控制項
在乙個表單中,大部分的表單控制項(如單行文字輸入框、單選按鈕、複選按鈕、核取方塊等)都是由元素定義的,語法如下:
流程拓展
登入、查詢所有使用者之類的功能,不管是什麼功能點,流程是一樣,只是處理的資料不一樣,邏輯不一樣
會話及其會話技術(三)
瀏覽器與伺服器建立一次請求與對話的過程。sesssionid 類似於診療卡 session基於cookie來實現的 sessionid產生過程 瀏覽器訪問web伺服器,servlet容器會建立乙個session物件和id屬性 session物件 病歷檔案 id 醫療卡 客戶端後續訪問伺服器,只傳遞標...
Hadoop集群搭建(三) 配置SSH免金鑰登入
1,生成公鑰和私鑰 命令 root hadoop2 ssh keygen t rsa 2,檢視檔案 在 root ssh 目錄下會生成兩個檔案 3,將被管理機上剛才生產的id rsa.pub賦值成authorized keys 命令 root hadoop2 ssh cat id rsa.pub a...
技術雜談 linux登入開發板簡化和免密登入方法
問題現象 每次登陸開發版都要輸入長長一串使用者 ip位址,還有登入密碼,有什麼方法可以簡化嗎?問題解決 以下都是針對開發版使用者名稱是hwhiaiuser,開發版ip位址為192.168.1.2 第一步 登陸開發版,免密碼登陸的設定 概念 ssh目錄 儲存有關於ssh配置的資訊在使用者的家目錄下,即...