springMvc實現攔截特定請求判斷用戶是否登錄


流程:

新建一個攔截器,配置攔截哪些,放行哪些

在spring servrt中配置攔截器

 <!--配置攔截器-->
    <mvc:interceptors>        
        <!--登錄攔截器-->
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <!--排除靜態資源,不然不登錄就不能顯示效果-->
            <mvc:exclude-mapping path="/static/**"/>
            <mvc:exclude-mapping path="/static/imgs/**"/>
            <bean class="com.hs.intercepter.LoginInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
servert中配置攔截器,注意靜態資源的處理

 

 

對於一個新聞站點來說除了評論功能其他請求都不用攔截

所以試着給springmvc框架增加一個用戶登錄的攔截功能

0基礎需要明白

登錄攔截是怎么實現的

由誰實現攔截

在哪里配置

用戶的登錄狀態保存在哪里

如何保證密碼的安全

 

通過學習大佬們的技術博客,發現實現登錄攔截基本上都用到了,只是大家寫的都不詳細,配置說的也不詳細而已

這位大佬沒有寫明白USER_SESSION_KEY是怎么來的https://www.cnblogs.com/UniqueColor/p/5778199.html

另一個

這位大佬沒說他的UserToken是什么東西,無參考價值import com.sgcc.uds.fs.client.UserToken;https://blog.csdn.net/u013147600/article/details/47725699

最終,大佬

https://www.cnblogs.com/limn/p/8733126.html

解決問題

那這樣的話,看起來就簡單了

經過查詢

HandlerInterceptor接口主要定義了三個方法:

1. boolean preHandle (HttpServletRequest request, HttpServletResponse response, Object handle)方法:該方法將在請求處理之前進行調用,只有該方法返回true,才會繼續執行后續的Interceptor和Controller,當返回值為true 時就會繼續調用下一個Interceptor的preHandle 方法,如果已經是最后一個Interceptor的時候就會是調用當前請求的Controller方法;

 

2. void postHandle (HttpServletRequest request, HttpServletResponse response, Object handle, ModelAndView modelAndView)方法:該方法將在請求處理之后,DispatcherServlet進行視圖返回渲染之前進行調用,可以在這個方法中對Controller 處理之后的ModelAndView 對象進行操作。(這里可在返回用戶前對模型數據進行加工處理,比如這里加入公用信息以便頁面顯示)

 

3. void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handle, Exception ex)方法:該方法也是需要當前對應的Interceptor的preHandle方法的返回值為true時才會執行,該方法將在整個請求結束之后,也就是在DispatcherServlet 渲染了對應的視圖之后執行。用於進行資源清理。

 

 

 
         
         
        

 

如果要登錄注冊,那就要先新建一個用戶類

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM