我的问题是如何让它工作,以便我在Eclipse JEE中运行servlet并显示一个带有数据表的jsp站点?通常,整个页面都是空的,或者我只看到表格列名称。在此期间我连接到我的数据库,这应该不是问题。
这是servlet。我想问题必定在这里。
@WebServlet("/StudentListService")
public class StudentListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ArrayList<Student> studentList = new ArrayList<Student>();
try {
StudentDAO studentDAO = new StudentDAO();
studentList = studentDAO.getAllStudents();
request.setAttribute("studentList", studentList);
request.getRequestDispatcher("StudentList.jsp").forward(request, response);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
这是相关的DAO方法。我在之前的练习中使用过这个DAO类,应该没问题。
public ArrayList<Student> getAllStudents() throws SQLException {
ArrayList<Student> studentList = new ArrayList<Student>();
Connection dbConnection = null;
try {
dbConnection = openConnection();
String sqlText = "SELECT id, firstname, lastname, streetaddress, postcode, postoffice FROM Student";
PreparedStatement preparedStatement = dbConnection.prepareStatement(sqlText);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt("id");
String firstName = resultSet.getString("firstname");
String lastName = resultSet.getString("lastname");
String street = resultSet.getString("streetaddress");
String postCode = resultSet.getString("postcode");
String postOffice = resultSet.getString("postoffice");
studentList.add(new Student(id, firstName, lastName, street, postCode, postOffice));
}
return studentList;
} catch (SQLException sqle) {
throw sqle; // Let the caller decide what to do with the exception
} finally {
closeConnection(dbConnection);
}
}
这是jsp。我不确定它是否正确,这只是它的jsp部分,它应该在html表中显示。
<c:forEach items="${ studentList }" var="studentObject">
<tr>
<td><c:out value="${ studentObject.id}" /></td>
<td><c:out value="${ studentObject.lastName }" /></td>
<td><c:out value="${ studentObject.firstName }" /></td>
<td><c:out value="${ studentObject.street }" /></td>
<td><c:out value="${ studentObject.postCode}" /></td>
<td><c:out value="${ studentObject.postOffice }" /></td>
</tr>
</c:forEach>
答案 0 :(得分:0)
直接访问servlet从您的浏览器向您的servlet发出get请求,如下所示:localhost:8080 / your-porject-name / StudentListService