我正在使用 Web 项目在 Netbeans 上创建一个非常基本的课程注册表单。我已经设法让它达到学生可以通过填写注册表来注册的程度。然后将输入的信息保存到 Derby 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>
我doLogin()
在我的 RegServlet.java 类文件中命名了另一个方法doStuff()
,我将在其中将用户名与存储在数据库中的密码匹配。如果用户名和密码匹配,我想为希望登录系统的学生启动一个会话,以搜索也将存储在数据库中的课程。
我该怎么做doLogin()
?我应该在哪里实现这个方法?下doStuff()
方法?还是别的班?我应该如何开始身份验证过程?
在处理所有安全问题之前,我只是先练习基础知识。