如何在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