c.getName().equals("username")怎么解釋
for(Cookie c:cookies){
if(c.getName().equals("username")
c.getName()獲取的是什么
為什么要和字符串username作equals比較
for(Cookie c:cookies){
if(c.getName().equals("username")
c.getName()獲取的是什么
為什么要和字符串username作equals比較
2017-01-10
舉報
2017-03-02
c.getName()獲取的是什么 你就要搞清楚C是什么,顯然C是Cookie對象,那么它的getName方法自然是獲取它的名字,然后通過字符串的比較方法.equals確定是否是所需要的那個。因為獲取到的Cookies是一個對象數(shù)組,所有的Cookie都在里面,而觀察存放cookie的方法就能知道,是通過一個key值和對象組成的,而這個key值就是他的名字,我們需要的是取出名字為username 和 password的兩個cookei對象,所以需要和username以及password對比。
2017-01-10
1.設(shè)置cookie到客戶端
??? ??? Cookie c1 = new Cookie("username","hzh");
??? ??? ??? response.addCookie(c1);
??? ??? ????
??? ??? ??? Cookie c2 = new Cookie("password","123");
??? ??? ??? //設(shè)置生命周期為1小時,秒為單位
??? ??? ??? c2.setMaxAge(3600);
??? ??? ??? response.addCookie(c2);
??? ??? ????
??? ??? ??? response.getWriter().print("ok");
查看此時的cookie文件,發(fā)現(xiàn)只寫入了password,因為此時未給 username設(shè)置生命周期,它還在客戶端的內(nèi)存中,并為寫到文件中(此時客戶端關(guān)閉此瀏覽器窗口,就丟失了),想寫到客戶端,需要加入c1.setMaxAge(3600)在 response.addCookie(c1);之前
以下是寫入我電腦中的cookie
?2.讀取cookie文件
Cookie[] cookies = request.getCookies();
??? ??? ??? for(Cookie c :cookies ){
??? ??? ??? ??? System.out.println(c.getName()+"--->"+c.getValue());
??? ??? ??? }
控制臺輸出結(jié)果如下:
username--->hzh
password--->123
JSESSIONID--->33BEAF95C526E0DDCF6A64990E533845
注意:
?1.服務(wù)器可以向客戶端寫內(nèi)容, 只能是文本內(nèi)容
?2.客戶端可以阻止服務(wù)器寫入,禁用cookies
?3.只能讀取自己webapp寫入的東西