中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何創建Servlet過濾器

發布時間:2021-07-14 15:44:50 來源:億速云 閱讀:225 作者:chen 欄目:編程語言

這篇文章主要講解了“如何創建Servlet過濾器”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何創建Servlet過濾器”吧!

過濾器可以在請求到達JSP或Servlet之前或響應返回客戶端之前添加一些額外的操作。如果有多個JSP頁面和Servlet都需要進行一個相同或相似的操作,我們可以把這個操作抽取到一個Servlet過濾器中,并通過匹配路徑截獲感興趣JSP或Servlet。

我們舉幾個典型的過濾器應用的例子,讀者可以推而廣之:

◆編碼轉換
亂碼問題困擾了不少的Web應用程序開發者,這是因為基于Java的Web應用程序可能運行于不同的Web應用程序器、操作系統平臺或硬件服務器上,不同的環境有自己默認的編碼類型,在數據的轉換過程中不同的默認編碼是亂碼問題的始作俑者,所以在開發JSP時常常需要將數據進行編碼轉換。我們可以創建一個Servlet過濾器在請求進入服務程序前都進行編碼轉換。

◆添加統一的標題或腳注
有些網頁需要添加統一的標題頭或腳注,可以通過Servlet過濾器在響應返回到客戶端前給網頁添加上統一的標題和腳注。

◆進行安全的控制
登錄系統后,一般都會將用戶信息對象放入到session中,可以通過Servlet過濾器在請求進入JSP或Servlet前判斷session中是否有用戶信息對象,如果有,則說明用戶已經登錄,如果沒有,則說明用戶還沒有登錄,將請求重定向到登錄頁面。

本節所提供的Servlet過濾器就是為了實現安全控制,下面我們就來開發這個Servlet。

1.打開創建Servlet過濾器的向導。

和創建標準的Servlet相似,在這步里指定過濾器的類名和包名。在Class name中輸入LoginCheckFilter,包名依就為bookstore.Servlet。按Next到下一步。

2.指定過濾器的路徑匹配模式
◆Name:logincheckfilter,指定過濾器的名字
◆URL pattern:/*,指定過濾器路徑匹配模式,這里我們使過濾器對所有的請求都進行過濾。

按Finish創建此過濾器。

打開向導創建的LoginCheckFilter.java文件,并錄入粗體所示的代碼,如下所示:

  1. package bookstore.servlet;  

  2. …  

  3. public class LoginCheckFilter  

  4. extends HttpServlet implements Filter  

  5. {  

  6. public void doFilter(ServletRequest request, ServletResponse 
    response, FilterChain filterChain)  

  7. {  

  8. try  

  9. {  

  10. //進行請求和響應的類型轉換  

  11. HttpServletRequest httpRequest = (HttpServletRequest) request;  

  12. HttpServletResponse httpResponse = (HttpServletResponse) response;  

  13. boolean isValid = true;  

  14. String uriStr = httpRequest.getRequestURI().toUpperCase();  

  15. if (uriStr.indexOf("LOGIN.JSP") == -1 &&  

  16. uriStr.indexOf("SWITCH.JSP") == -1 &&  

  17. httpRequest.getSession().getAttribute("ses_userBean") == null)  

  18. {  

  19. isValid = false;  

  20. }  

  21. if (isValid)  

  22. {  

  23. filterChain.doFilter(request, response);  

  24. } else  

  25. {  

  26. httpResponse.sendRedirect("/webModule/login.jsp");  

  27. }  

  28. } catch (ServletException sx)  

  29. {  

  30. filterConfig.getServletContext().log(sx.getMessage());  

  31. } catch (IOException iox)  

  32. {  

  33. filterConfig.getServletContext().log(iox.getMessage());  

  34. }  

  35. }  

  36. …  

感謝各位的閱讀,以上就是“如何創建Servlet過濾器”的內容了,經過本文的學習后,相信大家對如何創建Servlet過濾器這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

滕州市| 道真| 蒙阴县| 周口市| 寿阳县| 监利县| 宁城县| 大宁县| 葵青区| 尼玛县| 惠东县| 曲阜市| 广河县| 贵定县| 北碚区| 黄山市| 江源县| 宝兴县| 乐安县| 佛坪县| 山阴县| 阆中市| 隆尧县| 龙门县| 舟曲县| 博客| 大余县| 萨迦县| 无为县| 隆回县| 大方县| 叶城县| 哈巴河县| 金华市| 孟津县| 蓬莱市| 黄冈市| 龙海市| 神池县| 拉萨市| 平江县|