目前我正在使用jsp,servlet,jstl和hibernate集成做一个简单的应用程序,因为doPost和doGet需要操作(点击链接/提交按钮),我的servlet方法有问题。我的问题是如何在不对servlet执行任何操作的情况下获取数据库记录onload。我想要做的是,一旦admin(用户)点击userlist.jsp页面,组合框将由来自数据库的记录填充,onload。
到目前为止,这就是我所拥有的: 我的Register.jsp页面
我已经实现并调用了jstl,因此我可以轻松地从数据库中遍历wole列表(记录)。
<select name="role" >
<c:forEach var="load" items="${load}">
<option><c:out value="${load}"></c:out></option>
</c:forEach>
</select>
和我的servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
loadRole(request, response);
}
这是我的方法loadRole我只是调用方法来将逻辑与请求和响应对象分开。
private void loadRole(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
HttpSession roleSession = request.getSession();
Session session = factory.openSession();
session.beginTransaction();
Query query = session.createQuery("SELECT cd FROM Role");
List load = query.list();
roleSession.setAttribute("load", load);
request.getRequestDispatcher("Forms/Register.jsp").forward(request, response);
session.getTransaction().commit();
session.close();
}
这段代码正在运行,但是在获取数据库记录之前需要先执行doPost / doGet方法。