首頁 > Java > java教程 > 我可以在頁面載入時從 JSP 呼叫 Servlet,而不使用 HTML 表單嗎?

我可以在頁面載入時從 JSP 呼叫 Servlet,而不使用 HTML 表單嗎?

Barbara Streisand
發布: 2024-12-09 11:54:11
原創
695 人瀏覽過

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

在頁面載入時從JSP 檔案呼叫Servlet

問題:

問題:

Servlet 可以嗎無需使用HTML 從JSP 檔案呼叫形式?

答:

當然可以。若要實現此目的,請利用 servlet 的 doGet() 方法來預處理請求,然後將其轉送到 JSP。無需在瀏覽器網址列或連結中指定 JSP URL 即可實現此目的。相反,請指向 servlet 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);
    }

}
登入後複製

Servlet (ProductsServlet.java):Servlet (ProductsServlet.java):

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

...

<table border="1">
    <c:forEach items="${products}" var="product">
        <tr>
            <td>${product.name}</td>
            <td>${product.description}</td>
            <td>${product.price}</td>
        </tr>
    </c:forEach>
</table>
登入後複製
JSP (products.jsp):

在此範例中,doGet() 方法ProductsServlet 會擷取產品清單並將其設為請求屬性。然後,該請求將轉發到 products.jsp 頁面,該頁面迭代列表並在表格中顯示產品。

注意:

確保 JSP 檔案放置在 /WEB-INF 資料夾中以防止未經授權的直接存取。 Servlet 3.0(或更高版本)支援 @WebServlet註解進行Servlet註冊;但是,如果您無法升級或出於相容性原因需要使用 web.xml,請在 web.xml 中手動註冊 servlet。
  • 其他資源:
  • [Servlets Wiki 頁](https://wiki.java.net/HowToWiki/Servlets)
[doGet 和Servlet 中的doPost](https://docs.oracle.com/javaee/5/tutorial/servlets/basicservlets004.html)[如何避免在JSP 中使用Java 程式碼](https://stackoverflow.com / a/9701987/6776571)[Servlet 回傳「HTTP 狀態404 請求的資源(/servlet) 不可用」](https://stackoverflow.com/a/4288938/6776571)

以上是我可以在頁面載入時從 JSP 呼叫 Servlet,而不使用 HTML 表單嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板