JSP 中如何使用 .do 文件在 Java 和 Struts 框架外的前端 Web 表单之间传递数据?

Dat*_*nce 4 java jsp servlets

我正在将 JSP 与 Apache Tomcat 服务器一起用于 Web 项目。

我不明白.do文件或它们是如何使用的,但我看到它们出现在描述如何做我需要做的事情的答案中。

到目前为止,我的理解是这样的:

  1. Struts 框架使用 .do文件,所以很多人认为这些是相互关联的
  2. .do文件在Java Servlet 规范中进行了描述,因此并非特定于 Struts
  3. .do文件的至少一个主要用例(我感兴趣)是在 HTML/JS 表单和 Java/JSP 之间轻松传递数据。

如果我创建一个表单,例如我链接的第一个答案中的表单:

  <form action="MyServlet.do" method="post">
      <input type="text" name="nameThree" value="Enter a Name" onClick="if(this.value == 'Enter a Name'){this.value = '';}" /> 
      <input type="submit">
  </form> 
Run Code Online (Sandbox Code Playgroud)

它会抛出 404 错误,除非我创建.do它提到的文件。一旦.do创建了该文件,代码就会运行,但由于缺少某些部分,它似乎没有做任何事情。

我不确定该.do文件是否应该是空的,或者我是否应该将代码放入其中,等等。

因此我的问题是: 在 Struts 框架的上下文之外,如何在 JSP 中使用 .do 文件在 Java 和前端 Web 表单之间传递数据?

Alb*_*rto 6

我意识到这可能有点难以解释,所以我会尽我所能。

“.do”扩展名(在 URL 请求中)最常见于基于 struts 1 的 Web 应用程序中。也就是说,它的工作方式是将 webapp 配置为将带有 .do 扩展名的 http 请求路由到 strut servlet(通常在 web.xml 中)。这就是 struts 的工作方式(将 http 请求映射到表单、识别 post 与 get 请求、转发到操作类等)。

在非 struts 应用程序中,您的 http 请求需要路由到要提供的资源。您可以使用 servlet 执行此操作。或者,您可以只返回静态文件(如果您编写自己的 file.do),但 Tomcat 不会将该文件扩展名识别为需要翻译和编译的 JSP(因此 Tomcat 会给您一个 404)。

可能您仍然需要配置您的服务器 (tomcat) 来提供 HTML 页面。JSP 是您可以在服务器上创建动态 HTML 的众多工具之一。你可以做很多事情(在今天的标准中被认为是不好的做法,比如建立数据库连接、进行休息调用等)。最后,您可以在 JSP 中编写 Java。

如果您正在构建一个简单的 web 应用程序,我建议使用不同的更简单的框架,如 Spring Boot,使其更容易。如果您绝对想做 JSP,那么请确保您的 http 请求始终获取 .jsp 文件。如果您需要特殊的扩展,您需要将它们映射到一个 servlet 并在 web.xml 中编写/配置它。

希望这可以帮助!