ホームページ >Java >&#&チュートリアル >HTML フォームを使用せずにページの読み込み時に JSP からサーブレットを呼び出すことはできますか?

HTML フォームを使用せずにページの読み込み時に JSP からサーブレットを呼び出すことはできますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 06:43:13513ブラウズ

Can I Call a Servlet from a JSP on Page Load Without an HTML Form?

HTML フォームを使用せずにページ読み込み時に JSP ファイルからサーブレットを呼び出す

質問:

HTML フォームを使用せずに JSP ファイルからサーブレットを作成しますか?たとえば、ページのロード時にデータベース データを HTML テーブルに表示します。

答え:

はい、JSP ファイルからサーブレットを呼び出すことは可能です。サーブレットの doGet() メソッドを使用した HTML フォーム。このメソッドを使用すると、リクエストを前処理して JSP に転送できます。その後、リンクやブラウザのアドレス バーで JSP の代わりにサーブレットの 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:

<%@ 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 ファイルは /WEB-INF フォルダー内に配置されることに注意してください。

追加メモ:

  • @WebServlet は、Servlet 3.0 以降で使用できます。以前のバージョンを使用している場合は、web.xml で手動でサーブレットを登録する必要があります。
  • サーブレットの URL パターンには直接アクセスできます (例: http://localhost:8080/context/products)。
  • サーブレット内に HTML フォームが存在する場合は、method="post" を使用して同じ URL に投稿できます。後処理用に doPost() メソッドをサーブレットに追加します。

関連リンク:

  • [サーブレット Wiki](https:// wiki.java.net/bin/view/Javalin/servlets)
  • [doGet および doPost inサーブレット](https://docs.oracle.com/javase/7/docs/api/javax/servlet/http/HttpServlet.html#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse))
  • [Java コードの回避JSP](https://www.ibm.com/developerworks/java/tutorials/j-jsp/j-jsp-avoidjava/)
  • [サーブレットが HTTP ステータスを返す404](https://stackoverflow.com/questions/647016/java-servlet-returns-http-status-404-the-requested-resource-is-not-available-serv)

以上がHTML フォームを使用せずにページの読み込み時に JSP からサーブレットを呼び出すことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。