您何时使用 JSP,何时使用 Servlet?

2022-09-01 02:59:55

我有一个应用程序,可以将客户发送到另一个站点来处理付款。在客户之外,另一个网站调用我们服务器上的页面,让我们知道付款的状态。被调用的页面检查支付应用程序给出的参数,并检查我们是否知道交易。然后,它会更新数据库以反映状态。这一切都是在与客户没有任何互动的情况下完成的。

我个人选择将此功能作为 JSP 实现,因为只需将文件拖放到文件系统中比编译和打包文件,然后将条目添加到配置文件中更容易。

考虑到页面的功能,我认为servlet将是首选。问题是:

  • 我的假设是否正确?
  • 在 JSP 上使用 servlet 是否有真正的理由?
  • 这些原因是什么?

  • 答案 1

    JSP 在第一次运行时被编译为 servlet。这意味着它们之间没有真正的运行时差异。

    但是,大多数都有将 servlet 用于控制器和 JSP 用于视图的传统。由于控制器只是java类,因此您可以从所有IDE获得完整的工具支持(代码完成等)。与 JSP 相比,这提供了更好的质量和更快的开发时间。一些更高级的IDE(IntelliJ IDEA浮现在脑海中)有很好的JSP支持,使这个论点过时了。

    如果你正在创建自己的框架,或者只是用简单的JSP来制作它,那么你应该可以随意继续使用JSP。没有性能差异,如果你觉得JSP更容易编写,那么一定要继续。


    答案 2

    JSP:向用户呈现数据。这里不应该有业务逻辑,当然也没有数据库访问。

    Servlets:处理来自表单或特定 URL 的输入。通常人们会在Servlets上使用像Struts/Spring这样的库来清理编程。无论 servlet 应该只验证传入的数据,然后将其传递到后端业务层实现(您可以针对后端业务层实现编写测试用例代码)。然后,它应该将结果值放在请求或会话上,并调用 JSP 来显示它们。

    模型:一种数据模型,用于保存网站处理的结构化数据。servlet 可以获取参数,将它们放入模型中,然后调用业务层。然后,该模型可以与后端 DAO(或 Hibernate)接口以访问数据库。

    任何重要的项目都应该实现MVC结构。当然,对于琐碎的功能来说,这是矫枉过正的。在你的例子中,我会实现一个调用DAO来更新状态等的servlet,或者任何需要的东西。