84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
Kann ich ein Servlet aus einer JSP-Datei aufrufen, ohne ein HTML-Formular zu verwenden?
Zeigen Sie beispielsweise Ergebnisse aus einer Datenbank in einer HTML-Tabelle während des Ladens der Seite an.
您需要根据您的需求使用RequestDispatcher的forward/include方法来实现相同的效果。
在JSP中,您需要使用以下标签:
jsp:include:
例如:
jsp:forward:
请查看高级JSP示例:JSP-Servlet通信:
http://www.oracle.com/technology/sample_code/tech/java/jsps/ojsp/jspservlet.html
您可以使用servlet的doGet()方法预处理请求并将请求转发到JSP。然后只需在链接和浏览器地址栏中指向servlet URL而不是JSP URL。
doGet()
@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" %> ...
请注意,JSP文件放在/WEB-INF文件夹中,以防止用户直接访问它而不调用servlet。
/WEB-INF
还请注意,@WebServlet仅适用于Servlet 3.0(Tomcat 7等),请参阅@WebServlet注释与Tomcat 7。如果您无法升级,或者由于某种原因需要使用与Servlet 3.0不兼容的web.xml,则需要手动在web.xml中以以下方式注册servlet,而不是使用注释:
@WebServlet
web.xml
productsServlet com.example.ProductsServlet productsServlet /products
一旦通过注释或XML正确注册了servlet,现在您可以通过http://localhost:8080/context/products打开它,其中/context是Web应用程序部署的上下文路径,/products是servlet的URL模式。如果您在其中有任何HTML,则只需将其POST到当前URL,如,并在同一个servlet中添加一个doPost()来执行后处理工作。请继续阅读以下链接以获取更多关于此的具体示例。
/context
/products
doPost()
您需要根据您的需求使用RequestDispatcher的forward/include方法来实现相同的效果。
在JSP中,您需要使用以下标签:
jsp:include:
例如:
jsp:forward:
例如:
请查看高级JSP示例:JSP-Servlet通信:
http://www.oracle.com/technology/sample_code/tech/java/jsps/ojsp/jspservlet.html
您可以使用servlet的
doGet()
方法预处理请求并将请求转发到JSP。然后只需在链接和浏览器地址栏中指向servlet URL而不是JSP URL。例如:
请注意,JSP文件放在
/WEB-INF
文件夹中,以防止用户直接访问它而不调用servlet。还请注意,
@WebServlet
仅适用于Servlet 3.0(Tomcat 7等),请参阅@WebServlet注释与Tomcat 7。如果您无法升级,或者由于某种原因需要使用与Servlet 3.0不兼容的web.xml
,则需要手动在web.xml
中以以下方式注册servlet,而不是使用注释:一旦通过注释或XML正确注册了servlet,现在您可以通过http://localhost:8080/context/products打开它,其中
/context
是Web应用程序部署的上下文路径,/products
是servlet的URL模式。如果您在其中有任何HTML,则只需将其POST到当前URL,如
,并在同一个servlet中添加一个
doPost()
来执行后处理工作。请继续阅读以下链接以获取更多关于此的具体示例。另请参阅