1
如果我關閉了瀏覽器而不會使會話失效,那麼我不想讓它在沒有再次登錄的情況下訪問我的應用程序。如何在jsf 2.0中使會話失效,如果瀏覽器關閉而不會使當前會話無效。
並且不希望我的用戶使用後退按鈕來評估受限用戶頁面。
我該如何在JSF 2.0中做到這一點?
如果我關閉了瀏覽器而不會使會話失效,那麼我不想讓它在沒有再次登錄的情況下訪問我的應用程序。如何在jsf 2.0中使會話失效,如果瀏覽器關閉而不會使當前會話無效。
並且不希望我的用戶使用後退按鈕來評估受限用戶頁面。
我該如何在JSF 2.0中做到這一點?
如何在JSF 2.0無效會話,如果瀏覽器中得到沒有被當前會話失效關閉。
您無法以可靠的方式編程。會話將在30分鐘後自動失效。如果你打開一個新的瀏覽器,那麼將創建一個新的會話,並且以前的會話將不再可用。
,不希望我的用戶使用返回按鈕評估受限用戶的頁面。
您需要在瀏覽器指示,以不緩存那些受限制的用戶頁面。
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest) request;
HttpServletResponse httpRes = (HttpServletResponse) response;
if (!httpReq.getRequestURI().startsWith(httpReq.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources (CSS/JS/Images/etc)
httpRes.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
httpRes.setHeader("Pragma", "no-cache"); // HTTP 1.0.
httpRes.setDateHeader("Expires", 0); // Proxies.
}
chain.doFilter(request, response);
}
這樣的瀏覽器被強制發送一個完整的HTTP請求每次而不是:您可以通過創建它在覆蓋這些頁面,並執行以下任務中doFilter()
方法的URL模式映射到一個filter做到這一點顯示來自瀏覽器緩存的頁面。
感謝回覆@BalusC。我已經做到了,但我正在從JSF2.0尋找東西..順便感謝您的幫助。 – ifti