解決在點擊登出之后,用戶點擊瀏覽器回退按鈕能返回去繼續操作問題


我在登出之后不但返回到剛才的頁面。還因為我設置了攔截器而導致頁面出現了我並不想看到的結果。

於是我着手對着問題進行了優化解決:

一開始我想這么做:在每張頁面都有session判斷,如果session為空則返回登錄界面。但是就結果而言。出現了上面圖片中的結果

后來我又想從前端頁面着手,通過寫js      window.location.href返回登錄界面。

這是代碼:

    <script type="text/javascript">
        windows.location.href="/login/index"
    </script>

在IE瀏覽器中完美解決。但我用火狐測試了一下。。。唉。?還是不得行?

我馬上去檢查了我的java代碼

        //獲得session
        HttpSession session = req.getSession();
        //拿到session里面的屬性
        Object attribute = session.getAttribute("USER_IN_SISSION");
        //如果前台沒有傳信息,就跳轉回登陸頁面
        if (attribute==null) {
            //跳轉回登陸頁面
            req.getRequestDispatcher("/login/index").forward(req, resp);
            System.out.println("攔截器執行了");
            return false;
        }
        return true;
   
    @RequestMapping("/out")
    public String out(HttpServletRequest req) throws ServletException, IOException {
        // 獲得session
        HttpSession session = req.getSession();
        // 刪除session里的內容
        session.removeAttribute("USER_IN_SISSION");
        return "redirect:/login/index";
    }

 

上面這段代碼完全沒執行。

我又看了看xml配置

    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 不放行的 -->
            <mvc:mapping path="/**"/>
            <!-- 放行的 -->
            <mvc:exclude-mapping path="/login/*"/>
            <mvc:exclude-mapping path="/static/**"/>
            <mvc:exclude-mapping path="/index/*"/>
            <mvc:exclude-mapping path="/upload/*"/>
            <mvc:exclude-mapping path="/templates/*"/>
            <!-- 配置攔截器 -->
            <bean class="cn.king.web.Intercetor" />
        </mvc:interceptor>
    </mvc:interceptors>

嗯。。。我自閉了。。。

我打了斷點進debug調試。后台代碼沒什么問題。我想那就是前台頁面了。我跟着去驗了驗攔截器對我沒放行的路徑是否進行了攔截。

結果,我發現了我這個項目的一個bug

因為我的主頁面是這樣寫的:

主頁是導航欄菜單欄然后嵌套展示頁面
因為展示頁面都是引用的。所以展示頁面上面就不能寫上導航欄和菜單欄了。導致如果你不在原路徑訪問展示頁面。通過展示頁頁面的路徑來訪展示頁。就會出現,導航欄和菜單欄消失的情況
所以當我刪除了session后,用戶通過瀏覽器返回按鈕能回到剛才那個頁面。但那個頁面是瀏覽器緩存所致。
點擊操作的時候只有展示頁進行了權限跳轉。所以出現了我上面那個效果圖。
這個情況我只有換前端頁面了。因為后台代碼邏輯確實有點難處理這個問題。
 

 


免責聲明!

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



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