真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

創(chuàng)新互聯(lián)專注骨干網(wǎng)絡(luò)服務(wù)器租用十年,服務(wù)更有保障!服務(wù)器租用,德陽機(jī)房服務(wù)器托管 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。

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

web.xml配置過濾器


myFilter
com.zyk.ctrl.MyFilter
 
 
 //初始化參數(shù)名
  letgo
  //初始化參數(shù)值
  /login.jsp;/loginServlet;/css;/images;/js
 
 
 
 //必須和上面的一樣
 myFilter
 //過濾所有
 /*
 

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 {
//定義一個(gè)存放放行資源路徑的數(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路徑是要放行的資源中的一個(gè),放行
  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為登錄驗(yàn)證方法,如果驗(yàn)證成功,則設(shè)置一個(gè)屬性名為“name”值為用戶名的session,用于Myfilter驗(yàn)證是否登錄過
  request.getSession().setAttribute("name", name);
  response.sendRedirect("admin/admin.jsp");

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

 }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


網(wǎng)站名稱:使用Filter實(shí)現(xiàn)登錄權(quán)限驗(yàn)證
瀏覽路徑:http://weahome.cn/article/pjpcsp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部