如何在jsp页面加载时调用servlet

我想latest_products在页面加载时调用一个servlet

index.jsp此servlet在List中有记录。我想把这个List<products>传给index.jsp。但是我不想在url中显示servlet的名称。有什么办法可以做到这一点。

回答:

回答:

遵循的步骤:

  • 用于jsp:include从JSP调用Servlet,它将在运行时包含JSP中Servlet的响应
  • 在Servlet的请求中设置属性,然后在JSP中简单地读取它

样例代码:

JSP:

<body>

<jsp:include page="/latest_products.jsp" />

<c:out value="${message }"></c:out>

</body>

Servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setAttribute("message", "hello");

}

编辑

但我不想在url中显示servlet的名称。

只需url-pattern为Servlet

定义一个不同而有意义的代码,web.xml如下所示,它看起来像一个JSP页面,但在内部它是一个Servlet。

web.xml:

<servlet>

<servlet-name>LatestProductsServlet</servlet-name>

<servlet-class>com.x.y.LatestProductsServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>LatestProductsServlet</servlet-name>

<url-pattern>/latest_products.jsp</url-pattern>

</servlet-mapping>

回答:

遵循的步骤:

  • 第一次调用Servlet
  • 处理最新产品
  • 在请求属性中设置列表
  • 将请求转发到JSP,在此可以使用JSTL在JSP中轻松访问

样例代码:

Servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setAttribute("message", "hello");

RequestDispatcher view=request.getRequestDispatcher("index.jsp");

view.forward(request,response);

}

index.jsp:

<body>      

<c:out value="${message }"></c:out>

</body>

点击URL:scheme://domain:port/latest_products.jsp将调用Servlet的doGet()方法。

以上是 如何在jsp页面加载时调用servlet 的全部内容, 来源链接: utcz.com/qa/434278.html

回到顶部