0

javaBeanクラス(getterまたはsetterメソッドではない)でメソッドを実行したいのですが、2つのパラメーター(ユーザー名、パスワード)を受け取り、ブール値を返します(データベース(個別のDAOクラス)からメソッドを変更した後)。

次に、そのブール値に応じて、テキストまたはリダイレクトページを表示するかどうかを決定します。どうすればいいですか。JSTLまたはjsp:action(useBeanおよびset / getプロパティ)タグが必要ですか、それとも十分ですか?

.jspページにスクリプトレットまたはJavaコードがありません。ストラットのようなフレームワークや 実用的なコードを作成しますか?

index.jsp

  <%@page contentType="text/html" pageEncoding="UTF-8"%>
  <!DOCTYPE html>
  <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Open-Pages</title>
      </head>
      <body>
      <form method="post" action="/open-pages/comments.jsp">
        User Name: <input type="text" name="userName">
        <br />
        Password: <input type="password" name="password">
        <input type="submit" value="submit">
        <input type="reset" value="reset">
      </form>
      </body>
  </html>

コメント.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    </head>
    <body>
    <%
//         out.println(request.getParameter("userName"));
//         out.println(request.getParameter("userName"));
    %>

    <jsp:useBean id="verifyUser" class="entry.UserBean" scope="page" />
    <jsp:setProperty name="verifyUser" property="userName" param="userName" />
    <jsp:setProperty name="verifyUser" property="password" param="password" />

    <jsp:getProperty name="verifyUser" property="userName" />
    <jsp:getProperty name="verifyUser" property="password" />


    </body>
</html>

UserBean.java

      /*
      * To change this template, choose Tools | Templates
      * and open the template in the editor.
      */
      package entry;

      import java.io.Serializable;


      /**
      *
      * @author user1
      */
      public class UserBean implements Serializable{
      private String userName;
      private String password;
      private boolean validUser;

      /**
      * @return the userName
      */
      public String getUserName() {
          return userName;
      }

      /**
      * @param userName the userName to set
      */
      public void setUserName(String userName) {
          this.userName = userName;
      }

      /**
      * @return the password
      */
      public String getPassword() {
          return password;
      }

      /**
      * @param password the password to set
      */
      public void setPassword(String password) {
          this.password = password;
      }




      public boolean getValidUser(String user, String password) {
          if(entry.userAuthDAO.verifyUserPass(user,password)){
        return true;
        }else {
        return false;
        }
      }


      public void setValidUser(boolean validUser) {
          this.validUser = validUser;
      }
      }

UserAuthDAO

      package entry;


      import entry.Constants;
      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.util.logging.Level;
      import java.util.logging.Logger;

      /*
      * To change this template, choose Tools | Templates
      * and open the template in the editor.
      */

      /**
      *
      * @author user1
      */
      public class userAuthDAO {

      static String authUser = "select userName, password "
              + "from users "
              + "where userName = ? and password = ?";
      public static boolean verifyUserPass(String userName, String password){


          try {
          Connection con = DriverManager.getConnection(Constants.DBHost, userName, password);
          PreparedStatement pStmt = con.prepareStatement(authUser);

          pStmt.setString(1,userName);
          pStmt.setString(2, password);

          ResultSet rs = pStmt.executeQuery();
          String rsUserName = null;
          String rsPassword = null;
          if(rs.next()){
              rsUserName = rs.getString("userName");
              rsPassword =  rs.getString("password");    
          }

          con.close();

          if (rsUserName.equals(userName) && rsPassword.equals(password)){
              return true;
          }



        } catch (SQLException ex) {
            Logger.getLogger(userAuthDAO.class.getName()).log(Level.SEVERE, null, ex);

        }
        return false; 
      }

      }
4

1 に答える 1

1

JSPではそれを行わないでください。それはJSPの目的ではありません。これらはビューコンポーネントであり、HTMLマークアップを生成するために使用する必要があります。

これは、サーブレット、または好みのMVCフレームワークのアクションから実行します。サーブレットまたはアクションで結果が得られたら、JSPまたはリダイレクトにディスパッチします。

于 2012-12-02T15:38:42.390 に答える