将从一个servlet中的数据库查询到的数据传递给另一个Java servlet



我正在和其他同学一起完成一个项目,我们被卡住了。在我们的Log In servlet中,我们连接到数据库并检索与电子邮件匹配的数据。密码的标准。servlet将结果行信息添加到一个新的用户对象中,然后将用户放入一个Array中。(创建Array是为了尝试一次传递所有数据),我们也尝试过只传递一个属性。一旦数据被传递到配置文件,我们需要它显示在特定标签旁边。目前,我们还没有在配置文件servlet中显示profile.html,因为我们只是试图验证我们可以首先传递变量。

我们需要这样传递信息:数据库——比;LogInServlet——祝辞ProfileServlet

谢谢!

LogInServlet

@WebServlet("/LogInServlet" )
public class LogInServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
List<User> users = new ArrayList<User>();
public LogInServlet() {
super();
}


protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{

String email = request.getParameter("email");
String password = request.getParameter("password");
PrintWriter writer = response.getWriter();

String selectQuery="SELECT * FROM `user` WHERE email = ? and password = ?" ;

Connection connection =DBConnection.getConnectionToDatabase();
java.sql.PreparedStatement statement;   
try {

statement = connection.prepareStatement(selectQuery);
statement.setString(1,email);
statement.setString(2,password);


ResultSet set = statement.executeQuery();

if(set.next()) {

User user = new User();
user.setEmail(set.getString("email"));
user.setPassword(set.getString("password"));
user.setFirstName(set.getString("firstName"));
user.setLastName(set.getString("lastName"));
user.setDateOfBirth(set.getString("DOB"));

users.add(user);
// THIS CODE TO SEND TO NEXT SERVLET
//request.setAttribute("email", set.getString(email));
// RequestDispatcher rd = request.getRequestDispatcher("/ProfileServlet");
//rd.forward(request, response);

//FOLLOWING CODE IS TEST CODE TO PROFILE HTML
response.sendRedirect("profile.html");

} else {
String errorMessage ="<html>rn"
+ "<head>rn"
+ "<meta charset="ISO-8859-1">rn"
+ "<link rel="stylesheet" type="text/css" href="style2.css">rn"
+ "<title>Log In Error</title>rn"
+ "</head>rn"
+ "<body>rn"
+ "<div class="accountMessage">rn"
+ "<h1 class="message">Log in unsuccessful, please try again.</h1>rn"
+ "<button class="messageLogIn" onclick="history.back()">Log In</button>rn"
+ "</div>rn"
+ "</body>rn"
+ "</html>";

writer.write(errorMessage);
}
set.close();
statement.close();



} catch (SQLException e) {
String errorMessage ="<html>rn"
+ "<head>rn"
+ "<meta charset="ISO-8859-1">rn"
+ "<link rel="stylesheet" type="text/css" href="style2.css">rn"
+ "<title>Log In Error</title>rn"
+ "</head>rn"
+ "<body>rn"
+ "<div class="accountMessage">rn"
+ "<h1 class="message">Log in unsuccessful, please try again.</h1>rn"
+ "<button class="messageLogIn" onclick="history.back()">Log In</button>rn"
+ "</div>rn"
+ "</body>rn"
+ "</html>";

writer.write(errorMessage);
e.printStackTrace();
}



}
}

Servlet概要

//PROFILE PAGE WOULD BE DISPLAY HERE WITH USER DATA QUERYED FROM LOG IN PAGE
@WebServlet("/ProfileServlet")
public class ProfileServlet extends HttpServlet {
/**
* 
*/
private static final long serialVersionUID = -6589250865438405024L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter writer = response.getWriter();
//List<User> users = (ArrayList<User>)request.getAttribute("myList");

String email =(String)request.getAttribute("email");



writer.write("<html><body>"+email+"</body></html>");
}
}
HTML

概要

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Profile Page</title>
<link rel="stylesheet" type="text/css" href="style3.css">
</head>
<body>
<img src="images/CanadaLogo.jpg" width="230px" height="100px">
<h3 class="profileHeading">Profile Page</h3>
<br>
<div class="navBarCon">
<!--Comments between divs remove white spaces-->
<div class="navItem"><a class="linkA" href="">Home</a></div><!--
--><div class="navItem"><a class="linkA" href="">Verify Identity</a></div><!--
--><div class="navItem"><a class="linkA" href="">Voting Portal</a></div><!--
--><div class="navItem"><a class="linkA" href="">Help</a></div><!--
--><div class="navItem"><a class="linkA" href="LogIn.html">Log Out</a></div><!--
--></div>
<div class="profileCon">
<img src="images/profileIcon.png" width="150px" height="150px">
<h3 class="pLabel">Name: </h3> <!-- NAME DISPLAYED HERE -->
<h3 class="pLabel">Date of birth: </h3> <!-- DOB DISPLAYED HERE -->
<h3 class="pLabel">Email: </h3> <!-- EMAIL DISPLAYED HERE -->

</div>
</body>
</html>

如果用户通过身份验证,您的LoginServlet可以将请求转发给ProfileServlet,否则返回错误页面响应(或转发给提供错误响应的另一个Servlet)。

RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher("/ProfileServlet");
dispatcher.forward(request, response);