999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java Web應用中基于Filter的訪問權限控制實現

2017-03-06 23:31:53向大芳
軟件導刊 2017年1期

向大芳

摘要摘要:簡要描述了常規(guī)使用Java腳本實現的jsp頁面訪問權限控制,并詳細闡述了Filter的基本原理和實現方式。在此基礎上,運用Filter構建訪問權限控制方案,并將其與Java腳本方案進行對比分析。結果表明,使用Filter對用戶請求進行預處理,實現對jsp頁面訪問權限進行控制的方案,具備開發(fā)容易、效率高的優(yōu)勢。

關鍵詞關鍵詞:Java;服務請求;Web應用

DOIDOI:10.11907/rjdk.161995

中圖分類號:TP312文獻標識碼:A文章編號文章編號:16727800(2017)001004103

0引言

實現對頁面訪問權限的控制是所有Web應用中一個無法回避的問題,對于Java Web應用而言,慣常的做法是使用Java腳本來實現,但這種實現方式比較繁瑣,需要在每個要求控制的頁面上都添加控制腳本。該方式還有一個更致命的問題:當控制代碼發(fā)生改變時,修改維護的工作量極大。Filter又稱過濾器,是從Servlet2.3開始增加的功能,它可以改變用戶Request請求和修改一個Response響應[13]。充分利用Filter過濾器的這一特性使得程序員可以在用戶請求頁面資源時,攔截request請求并進行權限驗證,從而拒絕非法訪問請求。

本文將分別運用Java腳本和Filter過濾器來實現訪問權限控制,并對兩種方案的優(yōu)劣進行對比分析。1基于Java腳本方案的訪問權限控制實現

在Filter出現之前,在Java Web應用中實現訪問權限控制最常見的方案就是Servlet+Java腳本。其基本原理是Servlet控制器負責處理請求并進行用戶合法性驗證,Java腳本負責頁面訪問權限控制。

當用戶通過瀏覽器發(fā)出登錄請求Request時,該請求會被交給負責控制登錄請求的控制器Servlet,Servlet控制器則調用Service方法進行響應。該方法的原型如下:

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

登錄請求參數的傳遞有兩種方式:一種是Get方式,另一種是Post方式。根據請求參數傳遞方式的不同,Service方法調用不同的處理請求方法:doGet和doPost。其中doGet方法用于處理Get方式的請求,doPost方法用于處理Post方式的請求。通過表單Form登錄通常采用的是Post請求方式,因此需要在doPost方法中實現對用戶合法性進行驗證,如果驗證通過則將驗證通過標識或者用戶名等標識符以keyvalue鍵值對的形式保存在本次會話的HttpSession類型的實例化Session對象中。

假設登錄頁面文件為login.jsp,登錄成功的目標頁面為xx.jsp,表單Form的登錄請求參數被封裝為一個對象loginUser,該對象具有獲取用戶名的方法getName(),判斷用戶合法性的方法原型為:

當Web應用啟動時會去裝載Filter接口的實現類,Web容器首先實例化Filter實現類,并通過該實例對象調用其init()方法進行初始化。初始化完成的Filter對象被Web容器保存進應用級的集合容器中去等待用戶訪問資源。當用戶訪問的資源與web.xml配置文件中配置的Filter的url-pattern相匹配時,該請求即被攔截,此時,容器會取出Filter實例對象調用其doFilter方法。當應用服務被停止或重新裝載時,則會執(zhí)行Filter實例化對象的destroy方法將該對象銷毀。

如前所述,編譯完成后的Filter實現類字節(jié)碼文件(.class文件)并不具備對各種請求進行攔截過濾處理的能力,開發(fā)人員還必須在Web應用中對Filter進行一系列的配置。配置Filter有兩種方式:一種是在web.xml文件中進行配置,另外一種是在Filter實現類中使用Annotation注解@WebFilter方式進行配置。

3基于Filter方案的訪問權限控制實現

使用Filter實現Java Web應用中的頁面訪問權限控制比較容易,與Java腳本方案相同的是在處理登錄請求的Servlet中,將驗證通過標識符或者用戶名等標識符以keyvalue鍵值對的形式保存在HttpSession實例對象中。然后編寫用于用戶訪問權限控制的過濾器類,假定過濾器類名為CheckFilter,則該類的聲明如下:

public class CheckFilter implements Filter;

在該過濾器類的doFilter方法里,嘗試從HttpSession實例對象中獲取保存登錄驗證通過標識符的keyvalue鍵值對。如果該鍵值對存在,則說明該用戶是通過登錄驗證的用戶,放行請求,否則強制跳轉至登錄頁面。

假設Session中保存登錄驗證通過標識符的keyvalue鍵值對的key值為user,登錄頁面為login.jsp。則實現訪問權限控制的核心代碼如下:

4結語

在幾乎所有的Java Web應用中都存在用戶訪問權限控制的需求,實驗結果表明,采用Java腳本方案進行訪問控制,即便是采用改進型的方案,需要在大量的jsp頁面中編寫訪問控制代碼,極其繁瑣。而采用Filter過濾器實現用戶訪問控制,實現簡便,配置完成后,即可對需要進行訪問控制的頁面進行自動過濾,無需修改任何jsp頁面的代碼,開發(fā)效率高且維護方便。在Web應用規(guī)模和控制邏輯復雜程度增大的情況下,Filter方案相比傳統(tǒng)的Java腳本方案極具優(yōu)勢。參考文獻:

[1]李剛.JSP/Servlet及相關技術詳解[M].北京:電子工業(yè)出版社,2013.

[2]王鑫印.基于Filter技術的Web個性化服務應用研究[J].微機發(fā)展,2003(12):9395.

[3]Alur D.J2EE核心模式[M].北京:機械工業(yè)出版社,2002.

[4]李建.Java Web開發(fā)中過濾器組件應用及實例解析[J].電腦開發(fā)與應用,2009(11):58.

[5]張慶輝,李海濤.基于XML與FILTER的Web訪問[J].電腦知識與技術,2009(36):1058710589.

[6]李博文.淺談運用Java Web解決用戶登錄的安全問題[J].信息科技,2011(1):195196.

責任編輯(責任編輯:孫娟)

第1期 吳思穎,李亞楠,王年豐,等:基于雙處理器的四旋翼飛行控制系統(tǒng)研究軟 件 導 刊2017年標題

主站蜘蛛池模板: 日本高清在线看免费观看| AV天堂资源福利在线观看| 视频在线观看一区二区| 日韩欧美国产精品| 欧美一区中文字幕| 国产精品亚洲专区一区| 欧美午夜在线播放| 国产欧美日韩91| 亚洲成a人片7777| 欧美五月婷婷| 免费一级毛片在线观看| 丰满人妻一区二区三区视频| 亚洲无线国产观看| 在线精品亚洲一区二区古装| 小说 亚洲 无码 精品| 色有码无码视频| 99热这里都是国产精品| 亚洲无码高清一区| 国精品91人妻无码一区二区三区| 亚洲欧洲日韩综合色天使| 日韩国产黄色网站| 91精品久久久久久无码人妻| 免费激情网址| 色国产视频| 狼友视频一区二区三区| 国产全黄a一级毛片| 国产91线观看| 国产美女在线观看| 亚洲欧美自拍中文| 亚洲国产成熟视频在线多多| 欧美午夜在线播放| 视频在线观看一区二区| 久久精品娱乐亚洲领先| 激情国产精品一区| 视频二区欧美| 91精选国产大片| 国产不卡在线看| 国产人人干| 婷婷成人综合| 国产在线一区视频| 孕妇高潮太爽了在线观看免费| 日本欧美一二三区色视频| 久久一级电影| 欧美一级99在线观看国产| 亚洲国产日韩欧美在线| 午夜高清国产拍精品| 在线观看免费AV网| 成人在线不卡视频| 国产乱子伦手机在线| 国产精品欧美亚洲韩国日本不卡| 97人妻精品专区久久久久| 手机永久AV在线播放| 日韩A∨精品日韩精品无码| 欧美综合成人| 亚洲免费福利视频| 永久免费精品视频| 亚洲日本中文字幕天堂网| 韩国福利一区| 狠狠色综合网| 欧美日韩导航| 日韩在线观看网站| 亚洲IV视频免费在线光看| 日本一本正道综合久久dvd | 国产又爽又黄无遮挡免费观看| 国产xx在线观看| 国产精品露脸视频| 欧美精品成人一区二区在线观看| 一区二区在线视频免费观看| 一级毛片网| 九九热在线视频| 欧美、日韩、国产综合一区| 一级香蕉人体视频| 九色91在线视频| 久久亚洲国产最新网站| 久久美女精品国产精品亚洲| 国产一级片网址| 精品人妻AV区| 亚洲无卡视频| 干中文字幕| 色播五月婷婷| 久久精品女人天堂aaa| 国产日产欧美精品|