1.
<mvc:interceptors>
<mvc:interceptor>
<!--默認攔截的連接 -->
<mvc:mapping path=**"/**"** />
<!--不攔截的連接 -->
<mvc:exclude-mapping path="/classroom/login.action" />
<bean class="com.java.classroom.interceptor.UserLoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
2.過濾器 類
package com.java.classroom.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.java.classroom.bean.User;
public class UserLoginInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object obj) throws Exception {
System.out.println("preHandle");
//return false表示攔截,不向下執行
//return true表示放行
User user=(User) request.getSession().getAttribute("currentUser");
System.out.println(user);
if(user==null){
response.sendRedirect("/jsp/login.jsp");
return false;
}
return true;
}
}
一開始過濾器不起作用,發現是攔截的url不對<mvc:mapping path=**"/**"** />,應該寫:/**。
然後就是路徑問題,總共兩大類,別再迷糊了。
1.服務器端的相對地址
是在服務器端解析的,是相對於web應用的地址
servlet中的相對地址應該是相對於web應用,即相對於http://localhost:8080/webapp/
有這麼幾種情況,1.寫在servlet中的請求轉發的;2.配置文件中的。
2.客戶端的相對地址
交給瀏覽器解析的
http:// localhost:8080 /
1.form表單中的,js中的,html中的(比如a標籤)
參考自 http://zzqrj.iteye.com/blog/806909
springmvc攔截器配置和路徑問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
jsp-servlet入門
潮汐止处
2020-02-20 21:29:38
jsp-servlet入門
潮汐止处
2020-02-20 21:29:38
24小時熱門文章
-
再談23種設計模式(3):行爲型模式(學習筆記)
-
Power Automate Desktop 安裝完,登錄後老是提示one driver 錯誤
-
微前端學習筆記(4):從微前端到微模塊之EMP與hel-micro方案探索
-
微前端學習筆記(1):微前端總體架構概述,從微服務發微
-
985 碩士程序員,空窗 4 個月沒有 Offer!
-
一文搞懂 Spring 循環依賴
-
賽博鬥地主——使用大語言模型扮演Agent智能體玩牌類遊戲。
-
VScode右鍵打開(添加到右鍵)
-
記一次 .NET某工控視覺自動化系統 卡死分析
-
WindowsServer--SQL Server搭建主從同步實現讀寫分離 - 事務性分發