我的Web應用程序純粹是JS應用程序,具有用於路由的十字路口js。 對於登錄我正在使用j_security_check FORM Auth和/ LogOut servlet來使會話無效。Java:HttpSession超時篩選器檢查返回有效會話對象
1期 當會話超時,login.html的呈現在沒有CSS頁面的一部分,與錯誤「資源解釋爲樣式,但與MIME類型的文本傳輸,真正的問題來/ HTML '
當使用過濾器
<filter>
<description>Session Timeout Filter</description>
<filter-name>SessionTimeoutFilter</filter-name>
<filter-class>filters.SessionTimeoutFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SessionTimeoutFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
....
<session-config>
<session-timeout>1</session-timeout>
</session-config>
和JAVA代碼
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = null;
HttpSession session = null;
try {
req = (HttpServletRequest) request;
session = req.getSession(false);
if (session != null && !session.isNew()){
LOGGER.log("Session is Valid");
chain.doFilter(request, response);
}else{
LOGGER.log("Session is Invalid");
req.getRequestDispatcher("/login.html?loggedOut=true").forward(request, response);
}
} catch (Throwable t) {
}
}
第2期 當過濾器在說明不活動的2-3分鐘後運行時,它會打印「會話有效」。爲什麼這樣?
對於問題1,如果請求用於登錄HTML和CSS,則我在篩選器中包含一個檢查以繼續篩選。即使在這種情況下,問題仍然存在。 –