ホームページ > Java > &#&チュートリアル > サーブレットはフォームを送信せずに JSP ページのロードを前処理できますか?

サーブレットはフォームを送信せずに JSP ページのロードを前処理できますか?

DDD
リリース: 2024-12-07 22:28:16
オリジナル
506 人が閲覧しました

Can a Servlet Preprocess a JSP Page Load Without a Form Submission?

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 ファイルを /WEB-INF フォルダー内に配置します。ユーザーによるアクセス。
  • Servlet 3.0 (Tomcat 7 など) が必要です。 @WebServlet アノテーションのサポート。詳細については、Tomcat 7 の @WebServlet アノテーションを参照してください。
  • 3.0 より前のバージョンのサーブレットの場合は、web.xml で手動でサーブレットを登録する必要があります。

追加リソース

  • サーブレット wikiページ
  • サーブレットの doGet と doPost
  • JSP で Java コードを回避する方法
  • サーブレットは「HTTP ステータス 404 要求されたリソース (/servlet) は利用できません」を返します

以上がサーブレットはフォームを送信せずに JSP ページのロードを前処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート