如何调用servlet direclty来显示JSP站点上的输出?

时间:2018-05-09 21:29:43

标签: java jsp servlets dao

我的问题是如何让它工作,以便我在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>

1 个答案:

答案 0 :(得分:0)

直接访问servlet从您的浏览器向您的servlet发出get请求,如下所示:localhost:8080 / your-porject-name / StudentListService

相关问题