在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 請問 SpringMVC 的 Interceptor(攔截器) 如何獲取來源頁面

請問 SpringMVC 的 Interceptor(攔截器) 如何獲取來源頁面的路徑呢?

發(fā)生場景:

想要嘗試使用 Spring MVC 的 Interceptor 去統(tǒng)一進(jìn)行權(quán)限管理,根據(jù)不同的權(quán)限進(jìn)行相應(yīng)的權(quán)限.
用戶已經(jīng)登陸完成了,卻在瀏覽器中再次訪問登錄頁面的鏈接,那么這個時候吾輩想要知道用戶是從哪個頁面進(jìn)行訪問的,然后重定向到那個頁面(如果可以的話).
即: 用戶在 a 頁面上輸入登錄頁面的鏈接,那么如何重定向到 a 頁面呢?(Interceptor 并不知道用戶從什么頁面進(jìn)行訪問的).
Interceptor 攔截器中的代碼差不多像是下面這樣:

public class UserAlreadyLoginInterceptor extends HandlerInterceptorAdapter {
  /**
   * 日志對象
   */
  private static final Log logger = LogFactory.getLog(UserNoLoginInterceptor.class);


  /**
   * 重寫攔截方法
   *
   * @param request  請求
   * @param response 響應(yīng)
   * @param handler  操作對象
   * @return 是否應(yīng)該正常執(zhí)行
   */
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
    HttpSession session = request.getSession();
    UserLogin userSession = (UserLogin) session.getAttribute(ConstantsUtil.USER_SESSION);
    //判斷 session 中是否存在當(dāng)前用戶對象,如果存在就跳轉(zhuǎn)到首頁
    if (userSession != null) {
      try {
        response.sendRedirect(request.getContextPath() + "/user/home");
      } catch (IOException e) {
        logger.info(e.getMessage());
      }
      return false;
    }
    return true;
  }

}

所以,SpringMVC Interceptor 應(yīng)當(dāng)如何獲取來源頁面的路徑呢? (((o(?▽?)o)))

回答
編輯回答
溫衫

session
在你用戶沒有訪問權(quán)限,然后重定向之前,這個時候你將當(dāng)前路徑存入session
在你登錄之后再取出session里面的路徑,重定向到該路徑即可

2017年2月25日 19:59
編輯回答
寫榮
request.getHeader("referer");
2017年3月16日 06:32