日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaWeb_检查用户是否登录的过滤器

發布時間:2025/3/14 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb_检查用户是否登录的过滤器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

檢測用戶是否登錄的過濾器:

——情景:系統中某些頁面只有在正常登錄后才可以使用,用戶請求這些頁面時要檢查session中有無該用戶信息,但在所有必要的頁面加上session的判斷相當麻煩的事情

——解決方案:編寫一個用于檢測用戶是否登錄的過濾器,如果用戶未登錄,則重定向到指定的登錄頁面

——要求:需檢查的在Session中保存的關鍵字;如果用戶未登錄,需重定向到指定的頁面(URL不包括ContextPath);不做檢查的URL列表(以分號分開,并且URL中不包括ContextPath)都要采取可配置的方式。

?

list.jsp

設置b,c,d,e需要用戶登錄權限,點擊跳轉login.jsp

登錄完成,輸入有效的名字可以進入其他頁面

?

源代碼:

list.jsp

<a href="a.jsp">AAA</a> <br><br> <a href="b.jsp">BBB</a> <br><br> <a href="c.jsp">CCC</a> <br><br> <a href="d.jsp">DDD</a> <br><br> <a href="e.jsp">EEE</a> <br><br>

  

a,b,c,d,e.jsp

?

<h4>AAA PAGE</h4> <a href="list.jsp">Return...</a>

?

  

?

login.jsp

?

<form action="doLogin.jsp" method="post">username: <input type="text" name="username"><input type="submit" value="Submit"> </form>

?

  

?

doLogin.jsp

?

<%//1.獲取用戶的登錄信息String username = request.getParameter("username");//2.若登錄信息完整,則把登錄信息方法HttpSessionif (username!=null&&!username.trim().equals("")){session.setAttribute(application.getInitParameter("userSessionKey"),username);//3.重定向到list.jspresponse.sendRedirect("list.jsp");}else {response.sendRedirect("login.jsp");}%>

?

  

?

web.xml的相關設置

?

<!--用戶信息放入到session中鍵的名字--><context-param><param-name>userSessionKey</param-name><param-value>USERSESSIONKEY</param-value></context-param><!--若未登陸,需重定向的頁面--><context-param><param-name>rediretPage</param-name><param-value>/login/login.jsp</param-value></context-param><!--不需要攔截(或檢查)的URL列表--><context-param><param-name>uncheckedUrls</param-name><param-value>/login/a.jsp,/login/list.jsp,/login/login.jsp,/login/doLogin.jsp,</param-value></context-param>

?

  

?

LoginFilter.java

?

package com.demo.filter;import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.List;public class LoginFilter implements Filter {private String sessionKey;private String redirectUrl;private String uncheckedUrls;private FilterConfig filterConfig;@Overridepublic void init(FilterConfig filterConfig) throws ServletException {this.filterConfig = filterConfig;ServletContext servletContext = this.filterConfig.getServletContext();sessionKey = servletContext.getInitParameter("userSessionKey");redirectUrl = servletContext.getInitParameter("rediretPage");uncheckedUrls = servletContext.getInitParameter("uncheckedUrls");System.out.println(sessionKey);System.out.println(redirectUrl);System.out.println(uncheckedUrls);}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;//1.從web.xml文件中獲取sessionKey,redirectUrl,uncheckedUrls//1.獲取請求的servletPathString requestUrl = request.getRequestURL().toString();String requestUri = request.getRequestURI();String servletPath = request.getServletPath(); // http://localhost:8081/javaweb/login/list.jspSystem.out.println(requestUrl); // /javaweb/login/list.jspSystem.out.println(requestUri); // /login/list.jspSystem.out.println(servletPath);//2.檢查1獲取的servletPath是否不需要檢查的URL中的一個,若是,則直接放行,方法結束List<String> urls = Arrays.asList(uncheckedUrls.split(","));if (urls.contains(servletPath)){filterChain.doFilter(request,response);return;}//3.從session中獲取sessionKey對應的值,若值不存在,則重定向到redirectUrlObject user = request.getSession().getAttribute(sessionKey);if (user == null){response.sendRedirect(request.getContextPath()+ redirectUrl);return;}//4.若存在,則放行,允許訪問filterChain.doFilter(request,response);}@Overridepublic void destroy() {} }

?

  

轉載于:https://www.cnblogs.com/yangHS/p/11201084.html

總結

以上是生活随笔為你收集整理的JavaWeb_检查用户是否登录的过滤器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。