【发布时间】:2016-10-30 00:49:46
【问题描述】:
我在数据库中有数据,我希望其中的一些文本字段来自数据库。我创建了一个从数据库获取数据的方法。我有一个 open-account.jsp 页面,其中有一个表单,其中名字、姓氏和电子邮件已经从数据库中预填充,因此我使用了 servlet 中的 get 方法。当我尝试将数据从 servlet 发送到 jsp 页面时,该字段为空。我认为它没有将数据从 servlet 传递到 jsp,我不确定。这是我的代码:
数据库类:
public static ArrayList getUsers()
{
ArrayList<Users> userList = new ArrayList<>();
try
{
DBConnection.connectToDB();
String query = "SELECT * FROM userlogin";
stmt = DBConnection.conn.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
while(rs.next())
{
Users user = new Users();
user.setFirstName(rs.getString("firstname"));
user.setLastName(rs.getString("lastname"));
user.setEmail(rs.getString("email"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
userList.add(user);
}
}
catch(Exception e)
{
System.out.println(e);
}
return userList;
}
open-account.jsp
<!DOCTYPE html>
<html>
<head>
<title>Open Account</title>
</head>
<body>
<h3>Please fill in the details</h3>
<form name="openAccount" action="OpenAccount" method="GET">
<!-- in openaccount servlet, we will get the users info and fill some
of the forms below for them -->
First Name: <input type="text" name="firstname" value= <%= request.getAttribute("Users.getFirstName()") %> > <br/><br/>
Last Name: <input type="text" name="lastname"> <br/><br/>
Email: <input type="text" name="email"> <br/><br/>
</form>
<form name="chooseAccount" action="OpenAccount" method="POST">
Select the type of account:
<select name="accounttype">
<option>Checking</option>
<option>Saving</option>
<option>Money Market</option>
<option>Credit Card</option>
</select> <br/><br/>
Please check the box if everything above is complete:
Agree <input type="radio" name="agree" value="Agree">
Disagree <input type="radio" name="agree" value="Disagree">
<br/><br/>
<input type="submit" value="submit" name="Submit">
</form>
</body>
</html>
OpenAccount 服务
@WebServlet("/OpenAccount")
public class OpenAccount extends HttpServlet
{
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
ArrayList<Users> userList = DBConnection.getUsers();
request.setAttribute("Users", userList);
RequestDispatcher dispatcher = request.getRequestDispatcher("open-account.jsp");
dispatcher.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
}
}
【问题讨论】: