欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Filter實現(xiàn)登錄權(quán)限驗證

 更新時間:2019年10月28日 14:42:36   作者:Skywalker_zyk  
這篇文章主要為大家詳細介紹了使用Filter實現(xiàn)登錄權(quán)限驗證,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了用Filter實現(xiàn)登錄權(quán)限驗證的具體代碼,供大家參考,具體內(nèi)容如下

用戶在訪問任何界面時,會查詢用戶是否登錄過,如果登錄過則可以直接訪問,沒有登錄的話跳到登錄界面

web.xml配置過濾器

<filter>
<filter-name>myFilter</filter-name>
<filter-class>com.zyk.ctrl.MyFilter</filter-class>
 <!-- 配置初始化參數(shù),指明再沒有登錄的情況下放行的資源 -->
 <init-param>
 //初始化參數(shù)名
  <param-name>letgo</param-name>
  //初始化參數(shù)值
  <param-value>/login.jsp;/loginServlet;/css;/images;/js</param-value>
 </init-param>
 </filter>
 <filter-mapping>
 //必須和上面的一樣
 <filter-name>myFilter</filter-name>
 //過濾所有
 <url-pattern>/*</url-pattern>
 
</filter-mapping>

MyFilter.java

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet Filter implementation class MyFilter
 */

public class MyFilter implements Filter {
//定義一個存放放行資源路徑的數(shù)組
 private static String[] paths;

 /**
 * Default constructor.
 */
 public MyFilter() {
 // TODO Auto-generated constructor stub
 }

 /**
 * @see Filter#destroy()
 */
 public void destroy() {
 // TODO Auto-generated method stub
 }

 /**
 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
 */
 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
  throws IOException, ServletException {
 HttpServletRequest request = (HttpServletRequest) req;
 HttpServletResponse response = (HttpServletResponse) res;
  //獲取資源URI路徑
  String path = request.getServletPath();
  
  for (int i = 0; i < paths.length; i++) {
  //如果當前請求的URI路徑是要放行的資源中的一個,放行
  if (path.startsWith(paths[i])) {
   chain.doFilter(request, response);
   return;//放行之后返回,避免程序繼續(xù)執(zhí)行,往下面執(zhí)行是攔截的代碼
  }
  
  }
  //判斷用戶是否已經(jīng)登錄,如果登錄則放行資源,否則重定向到登錄界面
  String name = (String) request.getSession().getAttribute("name");
  //如果name為空,則證明用戶沒有登錄過,跳轉(zhuǎn)到登錄界面
  if (name==null) {
  request.getSession().setAttribute("error", "尚未登錄,請登錄");
  response.sendRedirect("/BookManagerSystem/login.jsp");
  return;
  
  }
  //剩下的情況為已登錄,放行
  chain.doFilter(request, response); 
 

 }

 /**
 * @see Filter#init(FilterConfig)
 */
 public void init(FilterConfig fConfig) throws ServletException {
 //讀取初始化參數(shù),得到放行的資源
 String initParameter = fConfig.getInitParameter("letgo");
 paths =initParameter.split(";");
 }

}

Servlet.java部分代碼

if ("login".equals(action)) {
  String name = request.getParameter("name");
  String pwd = request.getParameter("pwd");
  User user = new User(name, pwd);

  if (dao.ValidateLogin(user)) {
  //ValidateLogin為登錄驗證方法,如果驗證成功,則設(shè)置一個屬性名為“name”值為用戶名的session,用于Myfilter驗證是否登錄過
  request.getSession().setAttribute("name", name);
  response.sendRedirect("admin/admin.jsp");

  } else {
  request.getSession().setAttribute("error", "賬號或者密碼錯誤");
  response.sendRedirect("login.jsp");
  }

 }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis流式查詢的三種實現(xiàn)方法

    MyBatis流式查詢的三種實現(xiàn)方法

    流式查詢指的是查詢成功后不是返回一個集合而是返回一個迭代器,應(yīng)用每次從迭代器取一條查詢結(jié)果,本文介紹了MyBatis流式查詢的實現(xiàn),感興趣的可以了解一下
    2021-05-05
  • Java并發(fā)之AQS與自旋鎖詳解

    Java并發(fā)之AQS與自旋鎖詳解

    這篇文章主要介紹了Java并發(fā)之AQS與自旋鎖詳解,類如其名,抽象的隊列式的同步器,AQS定義了一套多線程訪問共享資源的同步器框架,許多同步類實現(xiàn)都依賴于它,如常用的ReentrantLock/Semaphore/CountDownLatch,需要的朋友可以參考下
    2023-10-10
  • HDFS?Balancer負載均衡器及語法詳解

    HDFS?Balancer負載均衡器及語法詳解

    這篇文章主要為大家介紹了HDFS?Balancer負載均衡器及語法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Applet小應(yīng)用程序開發(fā)簡介

    Applet小應(yīng)用程序開發(fā)簡介

    Applet小應(yīng)用程序開發(fā)簡介 ,用java開發(fā)的小程序,需要的朋友可以參考下
    2012-09-09
  • 解決idea找不到或無法加載主類的錯誤處理

    解決idea找不到或無法加載主類的錯誤處理

    這篇文章主要介紹了解決idea找不到或無法加載主類的錯誤處理,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java dom4j創(chuàng)建解析xml文檔過程解析

    Java dom4j創(chuàng)建解析xml文檔過程解析

    這篇文章主要介紹了Java dom4j創(chuàng)建解析xml文檔過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 淺談Java利用表格模型創(chuàng)建表格

    淺談Java利用表格模型創(chuàng)建表格

    這篇文章主要介紹了Java利用表格模型創(chuàng)建表格,需要的朋友可以參考下
    2017-09-09
  • java開發(fā)中的誤區(qū)和細節(jié)整理

    java開發(fā)中的誤區(qū)和細節(jié)整理

    這篇文章給大家整理了關(guān)于JAVA開發(fā)中的細節(jié)以及經(jīng)常進入的誤區(qū)整理,希望我們整理的內(nèi)容能夠給大家提供到幫助。
    2018-04-04
  • JDK8環(huán)境中使用struts2的步驟詳解

    JDK8環(huán)境中使用struts2的步驟詳解

    這篇文章主要給大家介紹了關(guān)于在JDK8環(huán)境中使用struts2的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • Java實現(xiàn)通過IP獲取IP歸屬地的方法(離線+在線)

    Java實現(xiàn)通過IP獲取IP歸屬地的方法(離線+在線)

    我們都知道安全攻擊都是在某臺客戶機上執(zhí)行某些惡意操作致使服務(wù)端響應(yīng)異常崩潰亦或響應(yīng)數(shù)據(jù)被篡改,首先我想到的是對訪問的web端做一個IP的校驗,那么我們首先得知道客戶端的IP是多少,接下來此文重點介紹如何獲得,需要的朋友可以參考下
    2023-10-10

最新評論