1

jsp を使用して簡単なログイン システムを設計しようとしています。ログインページで、ユーザーは自分のユーザー名とパスワードを入力します。これは、検証時に次のように実行されます。


if username and password combination exists, then
{

     HttpSession session = request.getSession(false);

     if (session == null) {
          // Session not created yet. So we do it now.
           session = request.getSession();
           session.setAttribute("id",idvariable );
           response.sendRedirect("home.jsp");
          // I redirect them to their profile home pages
    } 

    else {
        // Session is already created.
         response.sendRedirect("home.jsp");
       // So i again redirect them to their home page
    }
 }

「home.jsp」で、セッションが既に作成されているかどうかを確認するにはどうすればよいですか??


*プロファイルのすべてのページでセッションが既に開始されているかどうかを確認する必要があります。だから私はすべてのjspページの上部で呼び出すことができるある種の関数を作成したいと思います*


私は何をすべきか ??

4

3 に答える 3

1

に Java コードを追加/記述しないでくださいJspfilterユーザーを認証するように設計する必要があります。

編集:

チュートリアルを見てみましょう - 情報 (サーブレットフィルター)

于 2012-06-28T12:27:20.650 に答える
1

Preludejsp をすべての jsps の先頭に追加する JSP を使用します。セッションがすでに存在するかどうかを確認します。

参考文献:

于 2012-06-28T12:51:30.953 に答える
1

最初にこのようなクラスを作成します.. ユーザー Bean 属性を設定するには、この例では簡単にするために 1 人のユーザーを想定しています

public class Users implements Serializable {
    private String user;

 public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }
}

次に、このようなログインチェックで

   String userName = request.getRequest().getParameter("txtid");
   String password = request.getRequest().getParameter("txtPassword");

Vector params = new Vector();

        params.add(null);//return result from procedure
        params.add(Name);
        params.add(password);


 Users mainUser = new Users ();
 Vector tempResults = callingDaoProcedure.executeGetPasswordogin(params);//finds the password in DB

if (!tempResults.isEmpty()) {

                    mainUser = (MainUsers) tempResults.get(0);
 if (mainUser.getPassword().trim().equals(password.trim())) {

    HttpSession session = request.getSession(false);


         if (request.getSession().getAttribute("userLogin") == null) {
              // Session not created yet. So we do it now.
               session = request.getSession();
               requestgetRequest().setAttribute("status", "NO_ERRORS");
               request.getSession().setAttribute("userLogin", mainUser);
               response.sendRedirect("home.jsp");
              // I redirect them to their profile home pages
        } 

        else {
            // Session is already created.
             response.sendRedirect("home.jsp");
           // So i again redirect them to their home page
        }
}
else
{
              request.getRequest().setAttribute("status", "WRONG_PASSWORD");
              System.out.println("wrong password");
}


}

上記のコードはエラーフリーではありませんが、欠落しているコードを提供したため、これはあなたのケースに最も近いものであり、このように各jspでこの変数にアクセスできます

<input type="hidden" name="user" id="user" value="${sessionScope['userLogin'].user}">

それが役に立てば幸いです。最も重要なことは、あなたがそこから何かを学んだことです

于 2012-06-28T12:40:29.667 に答える