Web プロジェクトを使用して、Netbeans で非常に基本的なコース登録フォームを作成している最中です。学生が登録フォームに記入することで登録できるようになりました。入力された情報は、Derby DB に保存されます。追加/ドロップするクラスを検索するために、登録された学生がログインできるようにする必要があります。
ユーザー入力を取得してDBに保存するRegServlet.javaファイルのコードは次のとおりです。
public class RegServlet extends HttpServlet {
SaveToDB toDB = new SaveToDB();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
try {
doStuff(request, response);
} catch (SQLException ex) {
Logger.getLogger(RegServlet.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (InstantiationException ex) {
Logger.getLogger(RegServlet.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(RegServlet.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void doStuff(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InstantiationException, IllegalAccessException, SQLException {
//see if search parameter is present
String userName = request.getParameter("userName");
String passWord = request.getParameter("passWord");
if(!userName.isEmpty()&&!passWord.isEmpty()&&!lastName.isEmpty()&&!firstName.isEmpty()&&!age.isEmpty()&& (sex=='F' || sex=='M') &&!email.isEmpty()) {
request.setAttribute("userName", userName);
request.setAttribute("passWord", passWord);
toDB.createConnection();
toDB.insertNewUser(userName, passWord, lastName, firstName, age, sex, email);
RequestDispatcher view = request.getRequestDispatcher("login.jsp");
view.forward(request, response);
} else {
RequestDispatcher view = request.getRequestDispatcher("index.jsp");
view.forward(request, response);
}
}
そして、ここに私の newUser.jsp ファイルがあります:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New User Registration</title>
</head>
<body>
<form method="get" action="RegServlet">
<h1>Register!</h1>
Fill out information below:<p>
Username:
<input type="text" name="userName" value =""><p>
Password:
<input type="text" name="passWord" value =""><p>
<input type="submit" value="Finish!"><p>
<script type="text/javascript">
var var1 = "<%= (String) request.getAttribute("userName")%>";
if(var1 == (""))
document.write("<bSystem doesn't like an empty string.....Try Again!!!</b>");
var var2 = "<%= (String) request.getAttribute("passWord")%>";
if(var2 == (""))
document.write("<bSystem doesn't like an empty string.....Try Again!!!</b>");
</script>
</form>
</body>
この jsp コード部分<form method="get" action="RegServlet">
は、私のコードを RegServlet.java ファイルにリンクし、RegServlet クラスで、RequestDispatcher
実際にログインするために login.jsp という名前の次のページにユーザーを送っていました。
login.jsp ファイルについて助けが必要です。ここに私のlogin.jspファイルがあります:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Page</title>
</head>
<body>
<form method="Login" action="RegServlet">
<h1>Login!</h1>
Username:
<input type="text" name="userName" value =""><p>
Password:
<input type="text" name="passWord" value =""><p>
<input type="submit" value="Login!"><p>
</body>
DB に保存されているパスワードとユーザー名を照合するdoLogin()
RegServlet.java クラス ファイルに別のメソッドという名前が付けられています。doStuff()
そして、ユーザー名とパスワードが一致する場合、システムにログインしたい学生のためのセッションを開始して、DB にも保存されるクラスを検索したいと考えています。
メソッドはどうすればいいdoLogin()
ですか?このメソッドはどこに実装すればよいですか? メソッドの下でdoStuff()
?それとも別のクラス?また、認証プロセスを開始するにはどうすればよいですか?
すべてのセキュリティなどに対処する前に、まず基本を練習しているだけです。