我有以下 servlet。我想在 jsp
页面加载时调用 servlet。我该怎么做?
servlet: SomeServlet.java
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>SomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
如何编写相应的 jsp 以在 jsp 页面加载时调用 servlet。我还需要从 servlet 获取结果并显示在同一个 jsp 中。我可以将结果发送回 jsp
吗?
谢谢!
你应该反过来做。通过 URL 调用 servlet 并让它呈现 JSP。这也是正常的 MVC 方法(servlet 是 Controller ,JSP 是 View )。
首先将 JSP 文件放在 /WEB-INF
文件夹中,这样最终用户就不会在不调用 servlet 的情况下直接在浏览器地址栏中输入其 URL 而“意外”打开它。然后相应地更改 servlet 的 doGet()
以将请求转发到 JSP。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ...
request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
}
打开它
http://localhost:8080/contextname/HelloServlet
请注意,您当然可以将 servlet 映射中的 URL 模式更改为类似 /hello
的内容,以便您可以使用更具代表性的 URL:
http://localhost:8080/contextname/hello
另见: