调用一个servlet时,从JSP文件加载页面
P粉289775043
P粉289775043 2023-08-24 12:47:14
0
2
511

我可以在不使用HTML表单的情况下从JSP文件调用一个servlet吗?

例如,在页面加载期间显示来自数据库的结果在HTML表格中。

P粉289775043
P粉289775043

全部回复 (2)
P粉132730839

您需要根据您的需求使用RequestDispatcher的forward/include方法来实现相同的效果。

在JSP中,您需要使用以下标签:

jsp:include

例如:

jsp:forward

例如:

请查看高级JSP示例:JSP-Servlet通信:

http://www.oracle.com/technology/sample_code/tech/java/jsps/ojsp/jspservlet.html

    P粉422227023

    您可以使用servlet的doGet()方法预处理请求并将请求转发到JSP。然后只需在链接和浏览器地址栏中指向servlet URL而不是JSP URL。

    例如:

    @WebServlet("/products") public class ProductsServlet extends HttpServlet { @EJB private ProductService productService; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List products = productService.list(); request.setAttribute("products", products); request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response); } }
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ...  
    ${product.name} ${product.description} ${product.price}

    请注意,JSP文件放在/WEB-INF文件夹中,以防止用户直接访问它而不调用servlet。

    还请注意,@WebServlet仅适用于Servlet 3.0(Tomcat 7等),请参阅@WebServlet注释与Tomcat 7。如果您无法升级,或者由于某种原因需要使用与Servlet 3.0不兼容的web.xml,则需要手动在web.xml中以以下方式注册servlet,而不是使用注释:

     productsServlet com.example.ProductsServlet   productsServlet /products 

    一旦通过注释或XML正确注册了servlet,现在您可以通过http://localhost:8080/context/products打开它,其中/context是Web应用程序部署的上下文路径,/products是servlet的URL模式。如果您在其中有任何HTML

    ,则只需将其POST到当前URL,如,并在同一个servlet中添加一个doPost()来执行后处理工作。请继续阅读以下链接以获取更多关于此的具体示例。

    另请参阅

      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!