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;
}
}