ユーザーがログインしているかどうかをチェックしてから前のページをキャッシュしないようにするフィルターを使用しています。このためのコードは、似ているボタンやリンクのクリックでページが期限切れにならないようにする方法。ページ上の任意のボタンのクリックまたはリンクに対してヌルを返すとページが終了する
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws IOException, ServletException {
....
if (isRegisteredUser.equalsIgnoreCase(("1"))) {
sessionID = UUID.randomUUID().toString();
session.setMaxInactiveInterval(1800);
Cookie userCookie = new Cookie("userCookie", "loginUser");
userCookie.setPath("/");
httpServletResponse.addCookie(userCookie);
Cookie sessionCookie = new Cookie("WITSessionCookie", sessionID);
sessionCookie.setMaxAge(60*30);
sessionCookie.setPath("/");
httpServletResponse.addCookie(sessionCookie);
if (!httpServletRequest.getRequestURI().startsWith(httpServletRequest.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources (CSS/JS/Images/etc)
httpServletResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
httpServletResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0.
httpServletResponse.setDateHeader("Expires", 0); // Proxies.
}
filterChain.doFilter(httpServletRequest, httpServletResponse);
}
...
} //end of doFilter()
しかし、その後、任意のボタンまたはリンク上の任意のページのユーザーのクリックの場合、問題は、ある、と私はそのアクションのためにnullを返し、その後、私は、ブラウザの戻るボタンをクリックしてくださいページの期限が切れると言います。 どうすればこの問題を防ぐことができますか?ページはキャッシュされていないのですが、ボタンやリンクをクリックしたときにそのページが期限切れとなり、そのアクションでnullが返されるのはなぜですか?
ありがとう
あなたのセッションとCookieの処理は、途方もないことです。あなたはそれについていくつかの基本的な考え方を見逃しているようです。 – BalusC
... :)基本概念はどういう意味ですか?その基本的な概念について教えていただけますか?はい、あなたは正しいです。実際には私は章からそれを読んでいます。しかしそれはサーブレットとJSPのためのものでした。そして今私はJSFを使用しています。明らかにセッショントラッキングは同じですが、私はコンセプトがありません。 – Basit