ページの読み込み時に JSP からサーブレットを呼び出す方法
特定のシナリオでは、JSP ファイルからサーブレットを呼び出す必要がある場合があります。 HTML フォームを使用します。たとえば、ページのロード時にデータベース クエリの結果を HTML テーブルに表示するには、
doGet() メソッドを使用した解決策
サーブレットの doGet() メソッドを使用すると、次のことが可能になります。リクエストの前処理と JSP へのリダイレクト。これを実装する方法は次のとおりです:
サーブレットに doGet() を実装します:
@WebServlet("/products") public class ProductsServlet extends HttpServlet { ... protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ... request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response); } }
サーブレット データにアクセスするJSP:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ... <table> <c:forEach items="${products}" var="product"> <tr> <td>${product.name}</td> <td>${product.description}</td> <td>${product.price}</td> </tr> </c:forEach> </table>
これを実行すると、JSP ファイルは doGet() メソッドでサーブレットによって設定されたオブジェクトにアクセスでき、動的コンテンツ生成が可能になります。
直接 JSP アクセスの防止
セキュリティ上の理由により、 JSP ファイルは、ユーザーによる直接アクセスを防止するために、/WEB-INF フォルダー内に配置する必要があります。
注
@WebServlet アノテーションには、Servlet 3.0 以降が必要です。古いバージョンを使用している場合は、サーブレットを web.xml ファイルに手動で登録する必要があります。
参考文献
以上がページのロード時に JSP からサーブレットを呼び出してデータを表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。