2.response. :回應物件提供的方法:
void addCookie( Cookie cookie );服務端向客戶端增加Icookie物件
void sendRedirect (String location ) throws I0Exception: 頁面跳轉的一種方式(重定向)
void setContetType (String type) :設定服務端回應的編碼(設定服務端的contentType型別)
代碼: response . sendRedirect("success.jsp") ; 頁面跳轉:重定向,導致 資料丟
//頁面跳轉:請求轉發,可以獲取到資料,并且地址欄沒有改變(仍然保留轉發時
request. getRequestDispatcher( "success.jsp") . forward( request, response)
轉發 重定向
地址欄是否改變 不 變
是否保留第一次請求資料 保留 不保留
請求次數 1 2
跳轉位置: 服務端 客戶端
Cookie (客戶端,不是內置物件)
Cookie是由服務端生成的,再發送給客戶端保存。相當于.本地快取的作用:客戶 端(hello. mp4, zs/abc)->服務端(hello. mp4; zs/abc)
作用:提高訪問服務端的效率,但是安全性較差。
Cookie: name=value
javax. servlet. http. Cookie
public Cookie (String name, String value)String getName(): 獲取nameString getValue() :獲取value
void setMaxAge(int expiry) ;最大有效期(秒)
服務端準備Cookie:
response. addCookie (Cookie cookie)
頁面跳轉 (轉發,重定向)
客戶端獲取cookie: request. getCookies () ;
a.服務端增加cookie. :response物件: 客戶端獲取物件: request物件
b.不能直接獲取某-一個單獨物件,只能一-次性將全部的cookie拿到
(今天聽粉筆的網課,老師說 ,20幾歲的年紀,想要就去爭取,得到了就去珍惜,得不到就忘記。就是因為 人生不完美所以才要努力)
《驕傲的少年》送給每個奮斗路上的人
uj5u.com熱心網友回復:
web面試突擊,從幾乎0到有計劃(d6)Cookies就是服務器暫存放在你的電腦里的資料(.txt格式的文本檔案),好讓服務器用來辨認你的計算機。當你在瀏覽網站的時候,Cookies 會幫你在網站上所打的文字或是一些選擇都記錄下來。當下次你再訪問同一個網站,Web服務器會先看看有沒有它上次留下的Cookies資料,有的話,就會依據Cookie里的內容來判斷使用者,送出特定的網頁內容給你。
使用cookies實作 記住用戶名
//將用戶名加入到cookies
(寫在提交界面的jsp里)
Cookie cookie=new Cookie("name",name);
cookie.setMaxAge(10);//最大有效時間
response. addCookie(cookie );
response.sendRedirect("result.jsp");//重定向跳轉,將cookie客戶端
(寫在登錄界面里)
<% Cookie[ ] cookies=request.getCookies();//拿出cookie
for(Cookie cookie:cookies){
if(cookie.getName().equales("uname")){uname=cookie.getValue();
//equals 方法是 java.lang.Object 類的方法。有兩種用法說明:(1)對于字串變數來說,使用“==”和“equals()”方法比較字串 時,其比較方法不同。 “==”比較兩個變數本身的值,即兩個物件在記憶體中的首地址。“equals()”比較字串中所包含的內容是否相同。
}}%>(給input里uname的value="https://bbs.csdn.net/topics/")
4.session會話
客戶端第一次請求服務端時,服務端會產生一個session物件(用于保存該客戶的資訊) ;
并且每個session物件都會有一一個唯一的sessionId( 用于區分其他session) ;
服務端由會產生一個cookie,并且該cookie的name= JSESSIONID, value=https://bbs.csdn.net/topics/服務端sessionId的值;
然后服務端會在回應客戶端的同時將該cookie發送給客戶端,至此客戶端就有了一個cookie (JSESSIONID);
因此,客戶端的cookie就可以和服務端的session-一一對應(JSESSIONID - sessionID)
客戶端第二/n次請求服務端時:服務端會先用客戶端cookie種的JSESSIONID
session:
a.session存盤在服務端
b.session是在同一個用戶(客戶)請求共享
c.實作機制:第一次客戶請求時產生一個sessionid,并復制給cookie的jsessionid 然后發給客戶端
session方法:
String getId():獲取sessionId
boolean isNew():判斷是否是新用戶
void invalidate():使用session失效(退出登錄,注冊)
session.setAttribute("uname",name)方法添加指定的屬性,并為其賦指定的值
getAttribute()取值
cookie和session的區別: session cookie
保存的位置 服務端 客戶端
安全性 較安全 較不安全
保存的內容 Object| String
JSP9大內置物件
pageContext JSP頁面容器
request 請求物件
response 回應物件
session 會話物件
appliation全域物件
String getContextPath()虛擬路徑
string getRealPath( string Name)絕對路徑
cookie四種范圍物件(小->大)
pageContext JSP頁面容器 (page物件) ;_當前頁面有效,頁面跳轉后無效
request 請求物件 同一次請求有效 其他請求無效
session 會話物件 同一次會話有效 都有效
appliation全域物件 全域有效(整個專案有效)切換瀏覽器依然有效
以上4個物件共有的方法:
Object getAttribute (String name) :根據屬性名,或者屬性值
void setAttribute (String name, Object obj) :設定屬性值 (新增,修改)
setAttribute("a","b") ;//如果a物件之 前不存在,則新建一個a物件;
如果a之前已經存在,則將a的值改為bvoid removeAttribute(String name): 根據屬性名,洗掉物件
盡量用小的
uj5u.com熱心網友回復:
java基礎八種資料基本型別
byte對應包裝類:Byte
short對應包裝類:Short
int對應包裝類:Integer
long對應的包裝類:Long
float對應的包裝類:Float
doubledouble型別同樣不能表示精確的值,如貨幣
default: 對應的包裝類:Double
char對應的包裝類:Character
boolean對應的包裝類:Boolean
變數
1 區域變數:定義在方法中或區域代碼塊中,必須初始化(第一次賦值時分配記憶體空間)
區域變數的作用域在定義它的大括號內有效,在作用范圍內不能重復定義。
2 成員變數:定義在類中,自動初始化默認值,訪問受訪問控制符限制;區域變數可以和成員變數同名。
Object類
如果一個類不繼承其他類,則默認繼承Object類
1.方法
toString()獲得一個物件的字串表示。
Object中的默認實作是:“類名@地址”可在子類中重寫toString方法。
equals() 當前物件與參與物件比較是否相等。
a.equals(b) Object中的默認實作是比較記憶體地址。
this == obj:==
Object中比較記憶體地址,基本型別默認比較內容值。
String 類
String是封裝char[] 陣列的物件
1.字串創建
Char[] a ={‘a’,’b’,’c’};
String s = new String(a); >>>簡易語法>>> String s = “abcd”
2.字串的常量池
String s1 = “abcd” 字串的字面值寫法。
第一次使用一個字串字面值時,會在字串常量池中新分配記憶體,再次使用相同字面值時,直接訪問常量池中存在的物件,而不會重復創建
3.字串 中的Equals 和 “==”
“==”比較記憶體地址
Equals 看父類中的方法,object中的默認方法是比較記憶體地址,String類中重寫了父類方法比較的是字符內容。如下說明:
char[] a = {'a','b','c','d'};
String s1 = new String(a);//堆中新分配記憶體
String s2 = "abcd"; //在常量池新分配記憶體
String s3 = "abcd"; //訪問常量池中存在的物件
System.out.println(s1==s2); //false 比較記憶體地址
System.out.println(s2==s3); //true 比較記憶體地址
String類中重寫了equals方法,方法中比較的是字符內容
System.out.println(s1.equals(s2));//true 比較字串內容
System.out.println(s2.equals(s3));//true 比較字串內容
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/84338.html
標籤:非技術區
上一篇:旋轉后坐標問題
下一篇:js初學者問題
