JSP ページ読み込みのためのサーブレットの前処理
次のような場合に、データベースからの結果を HTML テーブルに直接表示したいシナリオが発生することがあります。 JSP ページがロードされます。このため、従来の HTML フォームを使用せずに JSP ファイルからサーブレットを呼び出すことができるかどうかという疑問が生じます。
サーブレットの doGet() メソッドによる前処理
答え肯定的です。サーブレットの doGet() メソッドを利用すると、リクエストを前処理してから JSP に転送できます。これには、リンクとブラウザのアドレス バーを JSP の URL ではなくサーブレットの URL にリダイレクトすることが含まれます。
実装例
次のコード スニペットを考えてみましょう。
@WebServlet("/products") public class ProductsServlet extends HttpServlet { @EJB private ProductService productService; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Product> products = productService.list(); request.setAttribute("products", products); request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response); } }
JSP ファイル内(/WEB-INF/products.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 ページのロードを前処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。