ユーザーがサーブレットを使用してログインしていない場合にログインページにリダイレクトする方法。
ログインページを使用してログインし、ホームページに移動します。ユーザーがログアウトをクリックしてブラウザの戻るボタンを押すと、ページは以前にアクセスしたページに移動します。使用時にユーザーをログインページにリダイレクトする方法サーブレット?
助けと継続的なサポートに感謝します
サーブレットを使用し、
web.xml 内
<filter>
<filter-name>AuthenticationFilter</filter-name>
<filter-class>com.java.web.authentication.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/faces/manage/*</url-pattern>
</filter-mapping>
認証フィルターで、
if (visit == null) {
servletContext.log("Redirecting to the login page.");
session.setAttribute(Constants.ORIGINAL_VIEW_KEY, requestPath);
String loginView = httpRequest.getContextPath() +
httpRequest.getServletPath() +Constants.LOGIN_PAGE;
httpResponse.sendRedirect(loginView);
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
ページ上部の jsp で次のコードを使用します。
if(userName.length()==0 || userType.length()==0 ){
session.setAttribute("message", "Please Login");
response.sendRedirect(response.encodeRedirectURL(path+"/"+destination));
}
理想的には、フィルターでこれを行う必要があります。
public void doFilter(.......){
if(user logged in){
filterChain.doFilter(...);
} else {
response.sendRedirect("/login.jsp");
}
}
Servlet Security Feature
コンテナがWeb Application Security
.
サーブレット doGet または doPost (呼び出された方) で、ユーザーがログインしているかどうかを確認する必要があります (セッション チェック メカニズムがあると思います)。ユーザーがログインしていないことがわかった場合は、次のようにします。
response.sendRedirect("/login.jsp");
ユーザーセッションを検証しServlet
、セッションが無効であるか、セッションに userId が含まれていない場合 (セッションの作成時にセッション属性で設定した場合)、それをlogin
ページにリダイレクトします。無効にするには、 の次のコードを使用してキャッシュをクリアする必要がありますjsp/servlet
。
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", 0);