好吧,目前我正在使用带有休眠集成的 jsp、servlet、jstl 做一个简单的应用程序,我的 servlet 方法存在问题,因为 doPost 和 doGet 需要操作(单击链接/提交按钮)才能发生。我的问题是如何在不对我的 servlet 执行任何操作的情况下获取数据库记录 onload。我想要做的是,一旦管理员(用户)单击 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>
和我的小服务程序:
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 方法。