2017-01-25 18 views
1

私はこのアプリケーションでログアウトしたときにspring mvcアプリケーションを実行しています。ブラウザの戻るボタンをクリックするとアプリケーションの前のページに移動します。この私の* .xmlのファイルにログアウト後にspring mvcアプリケーションのブラウザの戻るボタンを無効にする

 <interceptors> 
      <beans:bean id="webContentInterceptor" 
       class="org.springframework.web.servlet.mvc.WebContentInterceptor"> 
       <beans:property name="cacheSeconds" value="0" /> 
       <beans:property name="useExpiresHeader" value="true" /> 
       <beans:property name="useCacheControlHeader" value="true" /> 
       <beans:property name="useCacheControlNoStore" value="true" /> 
      </beans:bean> 
      </interceptors> 

私は、前のページに行き、ブラウザの戻るボタンをクリックした場合、私は再びログアウトする場合は、このアプリケーションでのみ取り組んでいます。

私はJavascriptとJqueryの例を試しましたが、私のspring mvcアプリケーションでは動作しませんでした。 誰にでもこの点について私に示唆してください。

+0

へのクラス参照を追加する前に、dispatcher- 'に進んでサーブレット '。フィルターで 'HttpSession'が存在するかどうかを確認し、そうでなければログインページに戻ります。例えば ​​'request.sendRedirect(" login ");' –

+0

@Nithinもしあなたが役に立ったら下のリンクをチェックしてくださいhttp://stackoverflow.com/questions/16819660/page-not-secured-after-log-out-and -click-back-button –

+0

こんにちはラーマンは、簡単な例でお勧めできます。 – Nithin

答えて

1

[OK]をここで私はあなたにあなたがそれを行う方法を考えます。 Filterを実装するクラスのパッケージcom.test.filterがあるとします。ここでは、doFilter()メソッドをオーバーライドし、セッションは、このようなことのように存在するかどうことを確認:

public class SessionFilter implements Filter { 

    @Override 
    public void doFilter(ServletRequest req, ServletResponse res, 
       FilterChain chain) throws IOException, 
       ServletException { 

      HttpServletRequest request = (HttpServletRequest) req; 
      HttpServletResponse response = (HttpServletResponse) res; 
      String url = request.getRequestURI(); 

      response.setHeader("pragma", "no-cache");    
      response.setHeader("Cache-control", "no-cache, no-store, must-revalidate");    
      response.setHeader("Expires", "0"); 
      HttpSession session = request.getSession(false); 

      //!url.contains("login.html") check if the requested page is login page or not. you can do it a numerous way. 
      // but for simpplicity here i do that 
      if(session==null && !url.contains("login.html")) { 
       response.sendRedirect(request.getContextPath() + "/login.html"); // here goto http://yourdoamin/login.html 
       response.setHeader("message", "Session Timeout."); // you can set your preffered message. 
       return; //break filter chain, requested JSP/servlet will not be executed 
      } 

      chain.doFilter(req, res); 
     } 
} 

今、あなたはあなたの要求をフィルタする必要がありweb.xml

<filter> 
    <description>session filter</description> 
    <filter-name>SessionFilter</filter-name> 
    <filter-class>com.test.filter.SessionFilter</filter-class> 
</filter> 
+0

ご支援いただきありがとうございます。私の問題を解決できることを願っています。 – Nithin

+0

それが役に立ったら、私の答えを受け入れることができます。 :) –

関連する問題