東莞市專(zhuān)注網(wǎng)站建設(shè)服務(wù)機(jī)構(gòu)網(wǎng)絡(luò)營(yíng)銷(xiāo)成功案例
1.JavaBean
實(shí)體類(lèi)
JavaBean有特定的寫(xiě)法:
必須要有一個(gè)無(wú)參構(gòu)造
屬性必須私有化。
必須有對(duì)應(yīng)的get/set方法
用來(lái)和數(shù)據(jù)庫(kù)的字段做映射 ORM;
ORM:對(duì)象關(guān)系映射
表--->類(lèi)
字段-->屬性
行記錄---->對(duì)象
2.<jsp:useBean 標(biāo)簽
?
3.?MVC三層架構(gòu)
4.?Filter
Filter:過(guò)濾器,用來(lái)過(guò)濾網(wǎng)站的數(shù)據(jù)
處理中文亂碼
登錄驗(yàn)證....
弄一個(gè)過(guò)濾器的demo 空maven+web項(xiàng)目
導(dǎo)入依賴(lài)
?
創(chuàng)建一個(gè)過(guò)濾器繼承對(duì)應(yīng)接口
?
創(chuàng)建一個(gè)servlet
配置路由訪問(wèn),發(fā)現(xiàn)出現(xiàn)亂碼
在servlet中寫(xiě)如下字段再訪問(wèn)即可顯示出漢字
?
對(duì)于每創(chuàng)建一個(gè)servlet就需要多加一個(gè)這個(gè)編碼轉(zhuǎn)換操作,非常復(fù)雜,故使用過(guò)濾器解決該問(wèn)題
寫(xiě)好過(guò)濾器功能后,在web.xml中配置過(guò)濾器的過(guò)濾路徑,這里故意將之前寫(xiě)的jsp頁(yè)面配了兩個(gè)路徑,一個(gè)帶/servlet一個(gè)不帶,我們配的過(guò)濾器只要訪問(wèn)路徑中帶/servlet即可經(jīng)過(guò)過(guò)濾器,不帶則不通過(guò)過(guò)濾器
之后啟動(dòng)項(xiàng)目,對(duì)jsp頁(yè)面文件進(jìn)行訪問(wèn),用不帶/servlet的路徑訪問(wèn)時(shí),由于不經(jīng)過(guò)過(guò)濾器,故過(guò)濾器中提供的編碼轉(zhuǎn)換未被使用,所以漢字仍為?,帶/servlet路徑時(shí)訪問(wèn),則經(jīng)過(guò)過(guò)濾器,放置在過(guò)濾器中的編碼轉(zhuǎn)換代碼被運(yùn)行,故訪問(wèn)頁(yè)面中的漢字被成功顯示出來(lái)
?
Web服務(wù)器關(guān)閉時(shí),過(guò)濾器會(huì)被銷(xiāo)毀,啟動(dòng)時(shí),就會(huì)初始化
5.Listener
做一個(gè)統(tǒng)計(jì)網(wǎng)站在線訪問(wèn)人數(shù)的demo來(lái)理解Listener
創(chuàng)建一個(gè)監(jiān)聽(tīng)器類(lèi),并實(shí)現(xiàn)相應(yīng)接口
編寫(xiě)創(chuàng)建session或銷(xiāo)毀session時(shí)需要執(zhí)行的在線人數(shù)更新邏輯,創(chuàng)建session也就是打開(kāi)一個(gè)瀏覽器的時(shí)候,銷(xiāo)毀session也就是關(guān)閉一個(gè)瀏覽器的時(shí)候,一臺(tái)電腦可用多個(gè)不同的瀏覽器來(lái)對(duì)同一個(gè)頁(yè)面進(jìn)行訪問(wèn),來(lái)體驗(yàn)這個(gè)demo
index頁(yè)面用來(lái)顯示實(shí)時(shí)在線訪問(wèn)人數(shù)
?
在web.xml中注冊(cè)我們寫(xiě)的監(jiān)聽(tīng)器
?
設(shè)置session過(guò)期時(shí)間
?運(yùn)行項(xiàng)目,訪問(wèn)首頁(yè)
6.Filter實(shí)現(xiàn)權(quán)限攔截
用戶(hù)登錄之后才能進(jìn)入主頁(yè)!用戶(hù)注銷(xiāo)后就不能進(jìn)入主頁(yè)了!
創(chuàng)建一個(gè)主頁(yè)
再創(chuàng)建一個(gè)登錄的頁(yè)面
?
同時(shí)再編寫(xiě)一個(gè)登錄失敗沒(méi)權(quán)限的錯(cuò)誤頁(yè)面
?
在web.xml中配置登錄頁(yè)面提交后需要執(zhí)行功能的servlet的路由
編寫(xiě)執(zhí)行功能的servlet,先獲取在登錄頁(yè)面提交的用戶(hù)名,如果輸入的內(nèi)容為admin則將session的id存到session中去并轉(zhuǎn)發(fā)至登錄成功界面,如果輸入內(nèi)容不是admin,則轉(zhuǎn)發(fā)至登錄失敗權(quán)限不足的錯(cuò)誤頁(yè)面
再在主頁(yè)寫(xiě)一個(gè)注銷(xiāo)的按鍵,方便用戶(hù)注銷(xiāo)下線,配的地址為一會(huì)要編寫(xiě)的執(zhí)行注銷(xiāo)邏輯的servlet的路由
編寫(xiě)執(zhí)行注銷(xiāo)邏輯的servlet,先去session中取id,如果取出不為空,說(shuō)明用戶(hù)登錄著,將這個(gè)id移除出session,并且將頁(yè)面轉(zhuǎn)發(fā)至登錄界面,讓用戶(hù)重新登錄
web.xml中不要忘記配該servlet的路由,這里的路由與注銷(xiāo)案件綁定的路由一致
如何避免用戶(hù)登錄前,直接通過(guò)主頁(yè)的url直接進(jìn)入主頁(yè)呢?我們可以通過(guò)配置過(guò)濾器來(lái)進(jìn)行攔截
如果說(shuō)session中沒(méi)取到id,則證明沒(méi)登錄,就算用戶(hù)直接訪問(wèn)主頁(yè)的url也不能成功,直接被轉(zhuǎn)發(fā)到錯(cuò)誤頁(yè)面
在web.xml中配置的過(guò)濾器的過(guò)濾路由就是將訪問(wèn)主頁(yè)時(shí)的路由經(jīng)過(guò)過(guò)濾器,主頁(yè)的jsp文件在sys目錄下,則訪問(wèn)主頁(yè)的路由必然攜帶/sys,故我們直接配置過(guò)濾路由為/sys/*即可,訪問(wèn)路徑中只要帶有/sys則必然通過(guò)過(guò)濾器
?
?
?