0

現在、私は jsp、サーブレット、jstl を hibernate 統合で使用する単純なアプリケーションを実行しています。私の質問は、サーブレットで何もせずにオンロードでデータベース レコードを取得するにはどうすればよいかということです。私がやりたいことは、管理者(ユーザー)が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 メソッドを実行する必要があります。

4

1 に答える 1

0

init()初期化にはメソッドを使用できます。ここを参照してください。

initメソッドを使用して結果をセッションに渡すにはどうすればよいですか?

service()メソッドを使用します。HttpRequestとを取得できますHttpResponse

サーブレットのライフサイクルを参照する必要があります。ここ

于 2012-10-18T06:13:19.003 に答える