Jfinal登入攔截器,死迴圈,原因以及解決辦法
public class AuthInterceptor implements Interceptor {
public void intercept(ActionInvocation ai) {
Controller c = ai.getController();
String userName = c.getSessionAttr("userName");
if (userName == null) {
c.redirect("/login");//如果將login命名為其他字串就會死迴圈
return;
}
ai.invoke();
}
}
如果將login命名為其他字串(如/aaa,/loginaa,/bb...等),就會死迴圈,這是何解?
答案:
解答1:因為其他的路徑還被AuthInterceptor 攔截了,而/login應該是加上了@Clear,/login不會經過攔截器。所以redirect的路徑
要加上Clear。Clear用法見你的Jfinal版本對應的文件。
解解2:攔截器按照程式碼的意圖陷入死迴圈而已,將不需要該攔截器的 action 使用 @Clear(AuthInterceptor.class) 清除一下即可
相關推薦
cas單點登入遇到 supplied credentials: [admin+password] 問題原因以及解決辦法
最近在寫shiro-cas單點登入demo的時候,真的是問題多多,百度了半天也沒有什麼有用的資訊,服務端部署了一遍又一遍,真的sui(抱怨over..哈哈) 我遇到的問題是服務端配置資料庫連線的時候出現的問題,先回顧一下流程 一、修改deployerConfigContext.xm
Jfinal登入攔截器,死迴圈,原因以及解決辦法
public class AuthInterceptor implements Interceptor { public void intercept(ActionInvocation ai) {
java編碼,解碼。亂碼原因及解決辦法
轉換流的編碼,常見的出現亂碼組合 package com.qianfeng.test; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import
關於tomcat埠的修改,以及同時部署多個應用,自己遇到的問題以及解決辦法
1.要求:在同一臺電腦上要同時部署多個應用,也就是要同時開啟多個tomcat 我的tomcat版本:apache-tomcat-6.0.41 解決方法: 1.使用不需要安裝的tomcat(解壓即可使用的) 2.修改你的tomcat檔案下的conf下的server.xml
解除安裝Oracle virtual box 後,無法安裝virtual box 的原因以及解決辦法
可以進入安全模式直接刪除。 也可以在正常模式下按以下步驟取得許可權後再刪除: 點選想獲取許可權的資料夾,右鍵-屬性,我們先來獲得這個資料夾的所有權,點安全-高階-所有者,接著點編輯-高階其他使用者或組,在輸入選擇的物件名稱裡面輸入你的使用者名稱,或者點高階-立即查詢,選擇你的使用者名稱,確定,然後選
spring+springMVC,宣告式事務失效,原因以及解決辦法
一.宣告式事務配置: <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property
設定JDK環境變數後,無法生效的原因和解決辦法
最開始安裝過安裝版的JDK版本,然後修改環境變數並不能生效,例如一開始安裝了1.8的版本,後修改環境變數為1.7,命令cmd 裡java -version仍顯示1.8 這是因為當使用安裝版本的JDK程式時,在安裝結束後安裝程式會自動將java.exe、javaw.exe
推廣域名被微信中被攔截、封殺、遮蔽的原因以及解決方案
科普: 域名被微信封殺,顯示的是連結無法訪問; 域名被微信攔截,是跟淘寶一樣-如需瀏覽,請長按網址複製後使用瀏覽器訪問。域名被微信遮蔽,顧名思義,遮蔽,肯定是看不到!!域名被信封,確實很多因素有關,簡單列舉下: 1、微信規定域名要備案,並且要加白名單,新買的域名沒做站就被封,應該是搶的剛被人放棄的域
SQL Server死鎖產生原因及解決辦法
其實所有的死鎖最深層的原因就是一個:資源競爭 表現一: 一個使用者A 訪問表A(鎖住了表A),然後又訪問表B,另一個使用者B 訪問表B(鎖住了表B),然後企圖訪問表A,這時使用者A由於使用者B已經鎖住表B,它必須等待使用者B釋放表B,才能繼續,好了他老人家就只好老老實實
mysql死鎖的原因及解決辦法
本文轉載自http://www.jb51.net/article/78088.htm 死鎖(Deadlock) 所謂死鎖:是指兩個或兩個以上的程序在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或
angular4 使用HttpClient攔截器 檢查token失效,返回登入頁面
1、首先建立一個攔截器服務:InterceptorService.ts 2、在app.module.ts檔案裡引入攔截器 import {InterceptorService} from ‘./InterceptorService’; import {HTTP_INTERCEPTORS
基於SpirngMVC登入攔截器(使用了redis快取),僅供參考
package com.avic.common.interceptor; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException;
spring mvc定義登入攔截器(不登入不讓訪問相關資源),為什麼要放權/login.do(就是不攔截/login.do)?
spring.xml攔截器配置如下: <mvc:interceptor> <mvc:mapping path="/**" /><mvc:exclude-mapping path="/login.do" /><bean class="
[CSS] hover 死迴圈,不斷閃現。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> .content{
攔截器和過濾器區別,Struts2與SpringMVC的區別
攔截器和過濾器 1.攔截器是基於java反射機制的,而過濾器是基於函式回撥的; 2.攔截器不依賴於servlet容器,而過濾器依賴於servlet容器; 3.攔截器只能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用; 4.攔截器可以訪問Action上下文、值棧裡的物件,而過
Springboot中自定義springmvc攔截器;HandlerInterceptor中preHandle,postHandle,afterCompletion解析
要實現自定義HandlerInterceptor 。通過 WebMvcConfigurer 的實現類屬性注入,完成springboot自定義攔截 自定義一個攔截器; package com.baidu.
python寫快排 寫了死迴圈, 記下來警醒一下
寫 尋找最小k 個數 時,直接用快排寫。但是快排一開始寫錯了。。。 class Solution: def GetLeastNumbers_Solution(self, tinput, k): if tinput ==[] or k > len(
使用攔截器獲取HttpServletResponse 物件,HttpServletRequest物件
攔截器的配置說明 <mvc:interceptors> <bean class="interceptor.HttpServletResponseInt
【Flume】【原始碼分析】flume中攔截器的原始碼分析,以TimestampInterceptor為例
本文將以TimestampInterceptor為例來分析一下flume中攔截器的工作原理 首先來看下改攔截器的實現結構 1、實現了Interceptor介面 該介面的方法定義如下: public void initialize(); public Event in
webview跳轉頁面的返回操作不成功,死迴圈問題
專案中需要用webView載入第三方的web頁面,其中有個頁面有重定向到另外一個頁面,造成了頁面無法後退,後退到上個頁面,又重定向到之前介面,重定向源頁面也被加入到瀏覽記錄中,剛開始想查詢api中找個編輯歷史記錄的方法,把找重定向源頁面從歷史記錄中刪除,半天找不到,只有c