最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本文實例為大家分享了用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++) {
  //如果當(dāng)前請求的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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決Springboot啟動報錯:類文件具有錯誤的版本61.0,應(yīng)為?52.0

    解決Springboot啟動報錯:類文件具有錯誤的版本61.0,應(yīng)為?52.0

    這篇文章主要給大家介紹了關(guān)于解決Springboot啟動報錯:類文件具有錯誤的版本?61.0,應(yīng)為?52.0的相關(guān)資料,這是查閱了網(wǎng)上的很多資料才解決的,分享給大家,需要的朋友可以參考下
    2023-01-01
  • Java高并發(fā)編程之CAS實現(xiàn)無鎖隊列代碼實例

    Java高并發(fā)編程之CAS實現(xiàn)無鎖隊列代碼實例

    這篇文章主要介紹了Java高并發(fā)編程之CAS實現(xiàn)無鎖隊列代碼實例,在多線程操作中,我們通常會添加鎖來保證線程的安全,那么這樣勢必會影響程序的性能,那么為了解決這一問題,于是就有了在無鎖操作的情況下依然能夠保證線程的安全,需要的朋友可以參考下
    2023-12-12
  • mybatis plus 自動轉(zhuǎn)駝峰配置小結(jié)

    mybatis plus 自動轉(zhuǎn)駝峰配置小結(jié)

    SpringBoot提供兩種配置Mybatis的方式,第一種是通過yml或application.properties文件開啟配置,第二種是使用自定義配置類,通過給容器添加一個ConfigurationCustomizer來實現(xiàn)更靈活的配置,這兩種方法可以根據(jù)項目需求和個人喜好選擇使用
    2024-10-10
  • Spring+MyBatis多數(shù)據(jù)源配置實現(xiàn)示例

    Spring+MyBatis多數(shù)據(jù)源配置實現(xiàn)示例

    本篇文章主要介紹了Spring+MyBatis多數(shù)據(jù)源配置實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • java指紋識別以及谷歌圖片識別技術(shù)源碼

    java指紋識別以及谷歌圖片識別技術(shù)源碼

    這篇文章主要為大家詳細(xì)愛介紹了java指紋識別以及谷歌圖片識別技術(shù)源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 關(guān)于SpringBoot獲取IOC容器中注入的Bean(推薦)

    關(guān)于SpringBoot獲取IOC容器中注入的Bean(推薦)

    本文通過實例代碼給大家詳解了springboot獲取ioc容器中注入的bean問題,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-05-05
  • idea顯示properties文件中文亂碼的解決方法

    idea顯示properties文件中文亂碼的解決方法

    在項目中通常會遇到如下問題,突然properties文件中文亂碼,本文主要介紹了idea顯示properties文件中文亂碼的解決方法,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • JAVA集合框架專題

    JAVA集合框架專題

    這篇文章主要介紹了JAVA集合框架的相關(guān)知識,文中講解非常細(xì)致,幫助大家更好的理解學(xué)習(xí)JAVA框架,感興趣的朋友快來了解下
    2020-06-06
  • java觀察者模式實現(xiàn)和java觀察者模式演化

    java觀察者模式實現(xiàn)和java觀察者模式演化

    觀察者模式是經(jīng)典設(shè)計模式中很常用的一種,平常我們看到的監(jiān)聽器,基本上都是采用這種設(shè)計模式實現(xiàn)的,這里探討一下觀察者模式的演化
    2014-02-02
  • 2020最新版idea激活教程(推薦)

    2020最新版idea激活教程(推薦)

    這篇文章主要介紹了2020最新版idea激活教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02

最新評論

昂仁县| 潢川县| 石嘴山市| 社会| 通化县| 沂水县| 商河县| 甘肃省| 乐山市| 平湖市| 新乡市| 通榆县| 英山县| 西盟| 大新县| 大埔县| 二手房| 麟游县| 绥化市| 磐安县| 西昌市| 安新县| 佳木斯市| 西吉县| 中方县| 辽中县| 宁城县| 安远县| 青川县| 慈利县| 富阳市| 新乡市| 鱼台县| 乐昌市| 石城县| 永和县| 尼玛县| 肇庆市| 文化| 武胜县| 浠水县|