今天就跟大家聊聊有關(guān)使用springMVC怎么實現(xiàn)用戶登錄權(quán)限驗證,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司主營萬山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,萬山h5成都微信小程序搭建,萬山網(wǎng)站營銷推廣歡迎萬山等地區(qū)企業(yè)咨詢
1.preHandle方法
顧名思義,該方法將在請求處理之前進行調(diào)用。SpringMVC 中的Interceptor 是鏈?zhǔn)降恼{(diào)用的,在一個應(yīng)用中或者說是在一個請求中可以同時存在多個Interceptor 。每個Interceptor 的調(diào)用會依據(jù)它的聲明順序依次執(zhí)行,而且最先執(zhí)行的都是Interceptor 中的preHandle 方法,所以可以在這個方法中進行一些前置初始化操作或者是對當(dāng)前請求的一個預(yù)處理,也可以在這個方法中進行一些判斷來決定請求是否要繼續(xù)進行下去。該方法的返回值是布爾值Boolean類型的,當(dāng)它返回為false 時,表示請求結(jié)束,后續(xù)的Interceptor 和Controller 都不會再執(zhí)行;當(dāng)返回值為true 時就會繼續(xù)調(diào)用下一個Interceptor 的preHandle 方法,如果已經(jīng)是最后一個Interceptor 的時候就會是調(diào)用當(dāng)前請求的Controller 方法。
2.postHandle風(fēng)法
由preHandle 方法的解釋我們知道這個方法包括后面要說到的afterCompletion 方法都只能是在當(dāng)前所屬的Interceptor 的preHandle 方法的返回值為true 時才能被調(diào)用。postHandle 方法,顧名思義就是在當(dāng)前請求進行處理之后,也就是Controller 方法調(diào)用之后執(zhí)行,但是它會在DispatcherServlet 進行視圖返回渲染之前被調(diào)用,所以我們可以在這個方法中對Controller 處理之后的ModelAndView 對象進行操作。postHandle 方法被調(diào)用的方向跟preHandle 是相反的,也就是說先聲明的Interceptor 的postHandle 方法反而會后執(zhí)行。
3.afterCompletion方法
該方法也是需要當(dāng)前對應(yīng)的Interceptor 的preHandle 方法的返回值為true 時才會執(zhí)行。顧名思義,該方法將在整個請求結(jié)束之后,也就是在DispatcherServlet 渲染了對應(yīng)的視圖之后執(zhí)行。這個方法的主要作用是用于進行資源清理工作的。
下面實現(xiàn)自己的攔截器
package com.huitong.util;
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;
public class StudentAuth implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
Object stu = session.getAttribute("student");
if( stu == null ){
response.sendRedirect("/webapp1/index.jsp");
return false;
}
return true;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}最后需要在spring-mvc.xml配置文件中進行攔截器配置,下面是配置片段
<mvc:interceptors> <mvc:interceptor> <!-- 先匹配所有路徑,然后排除不需要檢查的路徑 --> <mvc:mapping path="/**"/> <!-- 與登錄相關(guān)的請求 --> <mvc:exclude-mapping path="/*.jsp"/> <mvc:exclude-mapping path="/student/login.action"/> <mvc:exclude-mapping path="/student/register.action"/> <!-- 以下是靜態(tài)資源 --> <mvc:exclude-mapping path="/images/**" /> <mvc:exclude-mapping path="/css/**" /> <mvc:exclude-mapping path="/font/**" /> <mvc:exclude-mapping path="/js/**" /> <mvc:exclude-mapping path="/datepicker/**" /> <!-- 用戶是否已經(jīng)登錄的檢查bean --> <bean class="com.huitong.util.StudentAuth"/> </mvc:interceptor> </mvc:interceptors>
看完上述內(nèi)容,你們對使用springMVC怎么實現(xiàn)用戶登錄權(quán)限驗證有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
新聞名稱:使用springMVC怎么實現(xiàn)用戶登錄權(quán)限驗證
網(wǎng)頁地址:http://www.chinadenli.net/article16/ishddg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計公司、企業(yè)建站、App開發(fā)、建站公司、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)