2012-10-18 120 views
0

那麼目前我在做用jsp,servlet的,JSTL與Hibernate集成一個簡單的應用,我有一個關於自doPost方法和的doGet我的servlet方法的問題需要採取行動(點擊鏈接/提交按鈕) 即將發生。我的問題是如何獲取數據庫記錄onload而不對servlet執行任何操作。我想要做的是,一旦管理員(用戶)點擊userlist.jsp頁面的組合框將來自數據庫中的記錄進行填充,onload事件。的Servlet獲取數據庫記錄爲onload /初始化

到目前爲止,這是我的本錢: 我Register.jsp頁

我已經實現了,並調用JSTL這樣我就可以通過從數據庫中沃勒表(記錄)容易循環。

<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方法。

回答

0

您可以使用初始化init()方法。參考文獻here

下一頁

我怎樣才能通過使用init()方法的結果會?

使用service()方法。您可以檢索HttpRequestHttpResponse

您必須引用Servlet的生命週期。 Here

+0

在init方法我不能把HttpServletRequest和HttpServletResponse的,我怎麼可以通過使用init()方法的結果會?對不起,我是servlet新手... –