?統(tǒng)計(jì)當(dāng)前頁面的第幾個(gè)訪問者
??2.使用同步代碼塊選擇鎖對(duì)象,通常會(huì)使用當(dāng)前servlet對(duì)象
?作用:在xml文件中存放初始化數(shù)據(jù),在tomcat啟動(dòng)時(shí)就加載
?在web.xml文件中利用init-param標(biāo)簽來定義servlet初始化
參數(shù),包含兩個(gè)子標(biāo)簽param-name和value,是一個(gè)鍵值對(duì)形式
??當(dāng)Tomcat啟動(dòng)時(shí),WEB容器在創(chuàng)建servlet時(shí),會(huì)把初始化參數(shù)
封裝到servletconfig對(duì)象中,這個(gè)對(duì)象作為init方法的參數(shù)傳遞
?web容器:相當(dāng)于一個(gè)web的xml文件,
里面存放了好多servlet的加載對(duì)象
?注意:一個(gè)servlet對(duì)應(yīng)一個(gè)serveltConfig
?作用:利用域?qū)ο罂梢源娣艛?shù)據(jù),在其他的
servlet中不用創(chuàng)建對(duì)象就能來獲取
來設(shè)置初始化參數(shù),實(shí)現(xiàn)數(shù)據(jù)的共享
?1.表示當(dāng)前整個(gè)WEB應(yīng)用,一個(gè)應(yīng)用對(duì)應(yīng)一個(gè)servletconfig
?2.是一個(gè)域?qū)ο?,可以跨域獲取值,實(shí)現(xiàn)數(shù)據(jù)的共享
?3.使用setAttribute("屬性名", "屬性值"),getAttribute("屬性名");
?Web服務(wù)器接收到服務(wù)器的請(qǐng)求后,去調(diào)用另一個(gè)web資源
,這叫轉(zhuǎn)發(fā),但轉(zhuǎn)發(fā)后還是使用的原地址路徑
?request域轉(zhuǎn)發(fā),req.setAttribute("name", "西施");
?req.getRequestDispatcher("/ForwardTest2")
.forward(req, resp);
?重定向resp.sendRedirect(req.getContextPath()
+ "/RedirectTest2");
?要獲取requst域?qū)ο笾械臄?shù)據(jù)必須使用轉(zhuǎn)發(fā)。
??轉(zhuǎn)發(fā)是帶有數(shù)據(jù),重定向只是一個(gè)地址
??轉(zhuǎn)發(fā)的路徑不變,重定向要跳轉(zhuǎn)到了另一個(gè)路徑,
因此重定向不能使用request域?qū)ο?/p>
??forward只需servlet路徑,redirect需要加項(xiàng)目名
?生活中的會(huì)話:就是兩個(gè)人之間簡(jiǎn)單的對(duì)話
?程序中的會(huì)話:打開瀏覽器,訪問服務(wù)器上的內(nèi)容,關(guān)閉瀏覽器
?登錄業(yè)務(wù)流程:打開瀏覽器,訪問登錄頁面,輸入 用戶名 密碼 驗(yàn)證碼,發(fā)送給服務(wù)器,服務(wù)器驗(yàn)證消息,返回給瀏覽器,瀏覽器加載主頁
?發(fā)現(xiàn):在百度首頁登錄了用戶名,在所有的
百度服務(wù)的頁面下都是一個(gè)登錄的狀態(tài)
?購物車業(yè)務(wù)流程:淘寶上選擇一個(gè)商品,加入購物車。
打開瀏覽器,淘寶網(wǎng),登錄賬號(hào),查看購物車,也可以看到手機(jī)app添加的商品
?這里的購物車?yán)锩娴臄?shù)據(jù)在哪保存的?
?利用會(huì)話控制技術(shù):管理瀏覽器和服務(wù)器之間會(huì)話過程中產(chǎn)生的數(shù)據(jù)
???會(huì)話數(shù)據(jù)保存在服務(wù)上,可以生成一個(gè)臨時(shí)或永久的temp文件
???停止使用Session對(duì)象:HttpSession getSession(false)
默認(rèn)為true
???獲取Session有效時(shí)間:void setMaxInactiveInterval(time);
???invalidate()銷毀Session,getId()獲取id
????可以保存數(shù)據(jù)屬性到Session中
???set/get/removeAttribute("name")可以操作里面的數(shù)據(jù)
??1.創(chuàng)建對(duì)象:new Cookie("name","value")
??setValue("value")設(shè)置value值
??setPath(path)設(shè)置Cookie的有效范圍
??setMaxAge(time)設(shè)置Cookie的有效時(shí)間
??resp.addCookie(cookie)發(fā)送Cookie給瀏覽器
??4.服務(wù)器接受瀏覽器發(fā)送過來的數(shù)據(jù)
??req.getCookies()返回cookie數(shù)組
???2.cookie對(duì)象中不能保存中文,不然會(huì)報(bào)錯(cuò)
???3.Cookie保存數(shù)據(jù)的容量較小,只有4KB
但是如果瀏覽器沒打開Cookie,Session是不能使用的。