如何在页面加载时从 JSP 调用 Servlet
在某些情况下,您可能需要从 JSP 文件调用 Servlet,而无需使用 HTML 表单。例如,在页面加载时在 HTML 表中显示数据库查询结果。
使用 doGet() 方法的解决方案
servlet 中的 doGet() 方法允许请求预处理并重定向到 JSP。实现方法如下:
在 Servlet 中实现 doGet():
@WebServlet("/products") public class ProductsServlet extends HttpServlet { ... protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ... request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response); } }
访问 Servlet 中的数据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 文件可以访问 servlet 在其 doGet() 方法中设置的对象,从而实现动态内容生成。
阻止直接 JSP 访问
出于安全原因, JSP 文件应放置在 /WEB-INF 文件夹中,防止用户直接访问。
注意
@WebServlet 注解需要 Servlet 3.0 或更高版本。如果您使用的是旧版本,则必须在 web.xml 文件中手动注册 servlet。
参考文献
以上是如何在页面加载时从 JSP 调用 Servlet 以显示数据?的详细内容。更多信息请关注PHP中文网其他相关文章!