欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

JSP編程

當(dāng)前位置:主頁(yè) > 網(wǎng)絡(luò)編程 > JSP編程 >

servlet+jsp實(shí)現(xiàn)過(guò)濾器 防止用戶未登錄訪問(wèn)

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-11|欄目:JSP編程|點(diǎn)擊: 次

我們可能經(jīng)常會(huì)用到這一功能,比如有時(shí),我們不希望用戶沒(méi)有進(jìn)行登錄訪問(wèn)后臺(tái)的操作頁(yè)面,而且這樣的非法訪問(wèn)會(huì)讓系統(tǒng)極為的不安全,所以我們常常需要進(jìn)行登錄才授權(quán)訪問(wèn)其它頁(yè)面,否則只會(huì)出現(xiàn)登錄頁(yè)面,當(dāng)然我的思路:

一種是在jsp頁(yè)面進(jìn)行session的判斷,如果不存在該用戶的session,就跳轉(zhuǎn)到登錄頁(yè)面,否則執(zhí)行jsp頁(yè)面代碼,但是你會(huì)發(fā)現(xiàn)這樣做邏輯也簡(jiǎn)單,但是非常麻煩,如果有很多個(gè)jsp,那么就要寫多個(gè)判斷。

另一種則是利用過(guò)濾器,訪問(wèn)頁(yè)面時(shí)都進(jìn)行過(guò)濾驗(yàn)證,如果存在該用戶session,則訪問(wèn)該頁(yè)面,否則跳轉(zhuǎn)到登陸頁(yè)面登錄,保存session后訪問(wèn)其它頁(yè)面。

以下是我的實(shí)現(xiàn)

package com.test.filter;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
 
public class LoginFilter implements Filter {
    public static final String login_page = "/test/admin/index.jsp";
 public static final String logout_page = "/test/admin/Public/login.jsp";
 public void destroy(){
 
 }
 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws ServletException, IOException {
 HttpServletRequest request = (HttpServletRequest)servletRequest;
 HttpServletResponse response = (HttpServletResponse)servletResponse;
 String currentURL = request.getRequestURI();
 String ctxPath = request.getContextPath();
 //除掉項(xiàng)目名稱時(shí)訪問(wèn)頁(yè)面當(dāng)前路徑
 String targetURL = currentURL.substring(ctxPath.length());
 HttpSession session = request.getSession(false);
 //對(duì)當(dāng)前頁(yè)面進(jìn)行判斷,如果當(dāng)前頁(yè)面不為登錄頁(yè)面
 if(!("/admin/Public/login.jsp".equals(targetURL))){
  System.out.println("1"+targetURL+"ctxPath:"+ctxPath+"currentURL:"+currentURL);
  //在不為登陸頁(yè)面時(shí),再進(jìn)行判斷,如果不是登陸頁(yè)面也沒(méi)有session則跳轉(zhuǎn)到登錄頁(yè)面,
  if(session == null || session.getAttribute("admin") == null){
  response.sendRedirect(logout_page);
  return;
  }else{
  //這里表示正確,會(huì)去尋找下一個(gè)鏈,如果不存在,則進(jìn)行正常的頁(yè)面跳轉(zhuǎn)
  filterChain.doFilter(request, response);
  return;
  }
 }else{
  //這里表示如果當(dāng)前頁(yè)面是登陸頁(yè)面,跳轉(zhuǎn)到登陸頁(yè)面
  filterChain.doFilter(request, response);
  return;
 }
 
 }
 public void init(FilterConfig filterConfig)throws ServletException{
 
 }
 
}

接下來(lái)在web.xml中進(jìn)行配置

<filter>
 <filter-name>LoginFilter</filter-name>
 <filter-class>com.test.filter.LoginFilter</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>LoginFilter</filter-name>
 //這里表示對(duì)所有的以jsp后綴的文件有效,其它的無(wú)效
 <url-pattern>*.jsp</url-pattern>
</filter-mapping>

那么,這樣功能就實(shí)現(xiàn)了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:Jsp servlet驗(yàn)證碼工具類分享

欄    目:JSP編程

下一篇:Jsp中request的3個(gè)基礎(chǔ)實(shí)踐

本文標(biāo)題:servlet+jsp實(shí)現(xiàn)過(guò)濾器 防止用戶未登錄訪問(wèn)

本文地址:http://mengdiqiu.com.cn/a1/JSPbiancheng/11422.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有