在頁面載入時從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>
在此範例中,doGet() 方法ProductsServlet 會擷取產品清單並將其設為請求屬性。然後,該請求將轉發到 products.jsp 頁面,該頁面迭代列表並在表格中顯示產品。
注意:
確保 JSP 檔案放置在 /WEB-INF 資料夾中以防止未經授權的直接存取。 Servlet 3.0(或更高版本)支援 @WebServlet註解進行Servlet註冊;但是,如果您無法升級或出於相容性原因需要使用 web.xml,請在 web.xml 中手動註冊 servlet。以上是我可以在頁面載入時從 JSP 呼叫 Servlet,而不使用 HTML 表單嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!