【发布时间】:2017-10-10 05:19:16
【问题描述】:
我想在点击 JSP 按钮时调用一个 servlet 控制器。我不能使用表单提交按钮,因为我还有其他操作。除了 AJAX 调用之外,还有其他方法可以调用 servlet 吗?我想知道,有没有类似下面代码的选项
<a href="goToServlet?param1=value1¶m2=value2">Go to servlet</a>
【问题讨论】:
我想在点击 JSP 按钮时调用一个 servlet 控制器。我不能使用表单提交按钮,因为我还有其他操作。除了 AJAX 调用之外,还有其他方法可以调用 servlet 吗?我想知道,有没有类似下面代码的选项
<a href="goToServlet?param1=value1¶m2=value2">Go to servlet</a>
【问题讨论】:
是的,
一个 Servlet 的 doGet 方法 被映射到一个特定的 URL 上,该 URL 可以直接通过该 URL 访问。这是 doPost 方法无法实现的。
例如:
如果我有一个名为 TestServlet 的 servlet,它有一个 url 模式 testme,
然后我可以使用这样的 achor 标签访问这个 servlet:
<a href="/testme?param1=cool¶m2=nice">Go to servlet</a>
web.xml
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>servlets.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/testme</url-pattern>
</servlet-mapping>
TestServlet doGet 方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");
RequestDispatcher rd=request.getRequestDispatcher("anotherPage.jsp");
rd.forward(request,response);
}
}
【讨论】: