国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - springmvc+shiro自定義過濾器的實(shí)現(xiàn)代碼

springmvc+shiro自定義過濾器的實(shí)現(xiàn)代碼

2021-06-09 13:38itget Java教程

這篇文章主要介紹了springmvc+shiro自定義過濾器的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

實(shí)現(xiàn)需求:

1.用戶未登錄,跳轉(zhuǎn)到登錄頁,登錄完成后會(huì)跳到初始訪問頁。

2.用戶自定義處理(如需要激活),跳轉(zhuǎn)到激活頁面,激活完成后會(huì)跳到初始訪問頁。

使用到的框架

springmvc 的攔截器

shiro 自定義過濾器

實(shí)現(xiàn):

1.編寫攔截器通過session保存初始訪問的頁面地址,便于后面回跳這個(gè)頁面做準(zhǔn)備。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import org.slf4j.logger;
import org.slf4j.loggerfactory;
import org.springframework.web.servlet.handlerinterceptor;
import org.springframework.web.servlet.modelandview;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import javax.servlet.http.httpsession;
/**
 * 用戶登錄以后跳轉(zhuǎn)回之前頁面的攔截器 攔截對(duì)象: 除登錄,注冊之外的所有跳轉(zhuǎn)頁面的請求 因?yàn)橛脩綦S時(shí)可能進(jìn)行登錄操作
 *
 * @version 1.0.0
 * @date 2018 -10-19
 */
public class forwardbeforeurlinteceptor implements handlerinterceptor {
 private logger logger = loggerfactory.getlogger(this.getclass());
 @override
 public void aftercompletion(httpservletrequest arg0, httpservletresponse arg1, object arg2, exception arg3)
  throws exception {
 }
 @override
 public void posthandle(httpservletrequest arg0, httpservletresponse arg1, object arg2, modelandview arg3)
  throws exception {
 }
 @override
 public boolean prehandle(httpservletrequest request, httpservletresponse response, object arg2) throws exception {
 // 過濾掉ajax請求
 if (request.getheader("x-requested-with") != null
  && request.getheader("x-requested-with").equalsignorecase("xmlhttprequest")) {
  return true;
 }
 // 獲取當(dāng)前會(huì)話
 httpsession session = request.getsession(true);
 // 拿到上一個(gè)頁面地址
 string uri = request.getrequesturi();
 // 去掉項(xiàng)目地址長度的字符(因?yàn)槲业哪J(rèn)項(xiàng)目地址是給出的)
 string path = uri.substring(request.getcontextpath().length());
 // 得到參數(shù)
 string query = request.getquerystring();
 if (query == null) {
  query = "";
 } else {
  query = "?" + query;
 }
 string beforepath = path + query;
 session.setattribute("beforepath", beforepath);
 session.setattribute("method", request.getmethod());
 logger.debug("beforepath :{}, method:{}", beforepath, request.getmethod());
 return true;
 }
}

2.在spring的xml配置文件中配置攔截器,例如application.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<mvc:interceptors>
   <!-- 使用bean定義一個(gè)interceptor,直接定義在mvc:interceptors根下面的interceptor將攔截所有的請求 -->
 
   <!-- 配置用于跳回登錄之前的頁面的攔截器-->
   <mvc:interceptor>
     <!-- 進(jìn)行攔截:/**表示攔截所有url及其子路徑 -->
     <mvc:mapping path="/**" />
     <!-- ajax請求的action不進(jìn)行攔截 -->
     <mvc:exclude-mapping path="/*.ajax" />
     <mvc:exclude-mapping path="/resources/**" />
     <mvc:exclude-mapping path="/activation" />
     <bean class="com.xxx.xxx.xxx.interceptor.forwardbeforeurlinteceptor" />
   </mvc:interceptor>
 </mvc:interceptors>

注意:<mvc:exclude-mapping path="/activation" /> 此處是界面可以直接進(jìn)入激活頁面,此處是排除攔截激活頁面,防止頁面出現(xiàn)不停的回跳到自己頁面。

3.自定義過濾器。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import javax.servlet.servletrequest;
import javax.servlet.servletresponse;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import java.io.ioexception;
/**
 * 課程攔截器,當(dāng)會(huì)員過期或未激活時(shí)自動(dòng)跳轉(zhuǎn)到激活頁面
 *
 * @version 1.0.0
 * @date 2018 -10-19
 */
public class memberfilter extends com.bwjf.framework.shiro.filter.userfilter {
 @override
 protected boolean isaccessallowed(servletrequest request, servletresponse response, object mappedvalue) {
 httpservletresponse httpservletresponse = (httpservletresponse) response;
 httpservletrequest httpservletrequest = (httpservletrequest) request;
 if (httpservletrequest.getrequesturi().indexof("activation") > 0) {
  return true;
 }
 myshirouser myshirouser = myuserutil.getcurrentshirouser();
 if (!checkemptyutil.isempty(myshirouser) && checkemptyutil.isempty(myshirouser.getactivedate())) {
  try {
      // 瀏覽器跳轉(zhuǎn)到激活頁面
  httpservletresponse.sendredirect(httpservletrequest.getcontextpath() + "/activation");
  } catch (ioexception e) {
  e.printstacktrace();
  }
 }
 return true;
 }
}

4.shiro.xml配置自定義過濾器

springmvc+shiro自定義過濾器的實(shí)現(xiàn)代碼

5.controller激活處理后跳轉(zhuǎn)到初始頁面


springmvc+shiro自定義過濾器的實(shí)現(xiàn)代碼

總結(jié)

以上所述是小編給大家介紹的springmvc+shiro自定義過濾器的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!

原文鏈接:https://blog.csdn.net/hu582205/article/details/83501402

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久精品无码一区二区三区 | 在线播放一区二区三区 | 亚洲国产精品视频 | 久久久久久久久99精品 | 久久久久亚洲精品 | 91视频.com | www.五月婷| 国产精品视频观看 | 日韩中文字幕 | 人妖天堂狠狠ts人妖天堂狠狠 | 成人免费小视频 | 亚洲高清第一页 | 一区二区三区 在线 | 日韩成人在线播放 | 亚欧毛片| 情一色一乱一欲一区二区 | 一区二区三区中文字幕 | 先锋资源av| 日韩成人在线观看视频 | 亚洲成人精品久久 | 人人射人人舔 | 俺去俺来也在线www色官网 | 国产视频久久 | 理论电影在线 | 国产成人一区二区啪在线观看 | 日韩视频在线一区 | 青草青草久热精品视频在线观看 | 日韩一片 | 久久久久一区二区三区 | 国产欧美精品一区二区三区 | 天天天操 | 国产精品密在线观看 | 成人免费黄色毛片 | 国产日韩精品视频 | 中文字幕在线永久在线视频 | 国产成人午夜 | 我要看黄色一级大片 | 国产在线观看91一区二区三区 | 久久精品国产精品亚洲 | caoporn最新地址 | 亚洲一区久久 |