一種簡單的登入攔截功能
阿新 • • 發佈:2020-12-24
技術標籤:java
首先我們需要準備一個攔截器:
具體程式碼如下:
public class UserInterceptor 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 req, HttpServletResponse resp, Object object) throws Exception {
//獲取session
HttpSession session = req.getSession();
//獲取session裡的使用者資訊
Object obj = session.getAttribute(Constant.USER_IN_SESSION);
//判斷是否登入
if(obj==null){//未登入
//跳轉到登入頁面
resp.sendRedirect("/system/login");
return false;//攔截
}else{//已登入
return true;//放行
}
}
}
## 第二步,我們在配置檔案中配置我們的攔截器
< mvc:interceptors>
<mvc:interceptor>
<!--這裡寫你要攔截的路徑,必須寫在需要放行路徑的前面,/*代表攔截一級請求,/**代表攔截多級請求,就是包含多層級目錄-->
<mvc:mapping path="/system/**"/>
<!--這裡寫你需要放行的路徑,這裡登入功能就放開登入頁面-->
<mvc:exclude-mapping path="/system/login" />
<!--配置攔截器-->
<bean class="cn.xx.interceptor.UserInterceptor" />
</mvc:interceptor>
</mvc:interceptors>