1

ユーザーがサーブレットを使用してログインしていない場合にログインページにリダイレクトする方法。

ログインページを使用してログインし、ホームページに移動します。ユーザーがログアウトをクリックしてブラウザの戻るボタンを押すと、ページは以前にアクセスしたページに移動します。使用時にユーザーをログインページにリダイレクトする方法サーブレット?

助けと継続的なサポートに感謝します

4

5 に答える 5

2

サーブレットを使用し、

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);
    }
于 2012-07-11T10:25:45.207 に答える
2

ページ上部の jsp で次のコードを使用します。

if(userName.length()==0 || userType.length()==0 ){
        session.setAttribute("message", "Please Login");
         response.sendRedirect(response.encodeRedirectURL(path+"/"+destination));
    }
于 2012-07-11T10:14:19.287 に答える
1

理想的には、フィルターでこれを行う必要があります。

public void doFilter(.......){
      if(user logged in){
          filterChain.doFilter(...);
      } else {
        response.sendRedirect("/login.jsp");
      }
}

Servlet Security FeatureコンテナがWeb Application Security.

于 2012-07-11T13:05:59.407 に答える
1

サーブレット doGet または doPost (呼び出された方) で、ユーザーがログインしているかどうかを確認する必要があります (セッション チェック メカニズムがあると思います)。ユーザーがログインしていないことがわかった場合は、次のようにします。

response.sendRedirect("/login.jsp");
于 2012-07-11T10:13:54.233 に答える
1

ユーザーセッションを検証し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);
于 2012-07-11T10:15:48.637 に答える