Java 等效于 ASP.net 中的代码隐藏?

标签 java asp.net servlets scriptlet

我有一个相当奇怪的场景,我相信在 stackoverflow 上浏览这些问题的大量人才会毫不费力地帮助我解决这个问题。

我有一个用 Java 编写的项目——它在获取文件并将其上传到成像系统方面做了很多事情。该代码以给定文件路径的方式工作,它获取文件并将其上传到我想要的系统(这包括许多特定于业务的逻辑,这些逻辑无意公开)。

现在,我想要一个带有 FILE 输入的 HTML 页面,它接受一个文件,然后调用我编写的代码,该代码将完成获取文件并将其上传到系统的工作。

这意味着我必须将我的 Java 项目迁移到可以“调用”的项目中。

有很多第三方 jar 文件可以帮助我的代码运行。

  1. 第一种情况是以某种方式将代码制作成一个 scriptlet - 所有其他代码都可以编译成一个 jar。我讨厌有一个 jsp 来做这笔交易,但只是为了让它工作的阶段,我想接受这个选项。 我现在的问题是jar 文件去哪里了? 这将在 Apache Tomcat 中运行,所以我想我只是将 jars 放在 lib 目录中并重新启动 Tomcat,这样就可以解决问题了吗?是否需要修改任何类路径文件以使 Tomcat 服务器知道新的 jar 文件?

  2. 第二种情况是有一个 servlet,然后将 jars 放在 WEB-INF 目录中?请有人指导我这个。

您认为将执行业务逻辑的 Java 代码“迁移”到可以从 html 页面调用的东西的最佳方法是什么? 什么相当于代码隐藏?

非常感谢您,希望您能为我稍微解释一下这件事。

最佳答案

这实际上是一个非常标准的方案,您可以采用多种方法,具体取决于您希望该服务的可扩展性、安全性等。我将从需要最少工作量的方法开始在你这边:

  1. 按照您在文件输入中提到的那样创建 JSP。
  2. 创建一个 servlet,只需获取上传的文件(Tomcat 会将其存储在一个临时文件夹中,您可能需要先移动它)并获取路径。
  3. 让您的 servlet 通过 ProcessBuilder 调用您现有的 Java 代码,并将路径作为命令行参数传递给它。等待它完成。
  4. 根据需要删除临时文件。

更彻底的方法是让您的 servlet 直接调用后端 Java 代码。如果您已经有一个可以调用的接口(interface),那么您可以将 jar 文件放入您的 webapp 的 WEB-INF/lib 文件夹中,您的 servlet 将能够引用 jar 文件中的类,这样您就可以调用无论您需要直接上什么课。如果这个过程会很耗时,那么您不想暂停 servlet 和请求,因此最好将它交给一个异步线程,该线程将负责处理需要完成的任何事情归档并在之后清理。

关于Java 等效于 ASP.net 中的代码隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526997/

相关文章:

java - 对 getApplicationContext() 的不同响应

java - 如何使用参数模拟 jdbcTemplate.query (Object[]{})

c# - 一个页面上的多个 GridView

java - 为什么上传图片到Blobstore后回调失败?

Java 正则表达式跳过匹配

java 中的 java.lang.OutOfMemoryError 错误

asp.net - asp.net Web API 与发出 JSON 的 asp.net MVC Controller 的性能?

ASP.NET数据源控件 "does not have a naming container"异常

java - 将 InputStream 写入 HttpServletResponse

java - 一个 servlet 如何总是执行相同的任务?