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

标签 java jsp servlets

<分区>

我有以下 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

另见:

关于java - 如何在jsp页面加载时调用servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414093/

相关文章:

java - 如何 Autowiring 手动创建的对象的属性?

java - 遇到异常 javax.management.RuntimeOperationsException : Exception invoking method check

java - 如何使 JFrame 在全屏模式下工作

javascript - 如何获取jsp数据并显示在javascript函数的变量中

java - JSP 和 Servlet 如何相互交互

java - 仅获取 1 个随机行的值并将这些值设置为一个类

java - 正则表达式跨越两行,仅在单独的行上匹配

css - 运行 JSP 页面时无法显示 CSS

jsp - 如何本地化 Java 中的数字系统,例如印地语还是马拉地语?

javascript - 从 Ajax 传递时数组值变为 null