java - JSP 和 MVC 最佳实践

标签 java jsp jakarta-ee model-view-controller jstl

我是 JSP 编程新手,正在为一位家庭成员编写 Web 应用程序。在我学习的过程中,我听到很多关于 JSP 应该如何用于表示以及 servlet 用于业务逻辑的说法。我的问题基本上是关于这能走多远以及我何时使用 JSTL 是不好的做法。这是一个示例:我的应用程序有一个登录页面,我正在使用 c:if 和连接到我的 java 类的自定义函数来处理表单。这会被认为是糟糕的 MVC 实践吗?或者,因为我只是从 EL 引用我的逻辑代码,这是对 JSP 的合法使用吗?

最佳答案

您的问题包含很多最佳实践,这会引起很多意见和争论,而这在本论坛中通常是不受欢迎的。一般来说,JSP 是 MVC 中的“ View ”,应该用于呈现“M”模型提供的数据,这将是您的 Java 代码。 “C” Controller 通常分散在 M 和 V 之间(引起更多争论,抱歉)。

您在 JSP 中放置的任何逻辑,除了查看给定的数据并决定如何呈现数据之外,都会将其移向模型。您的登录页面应该只收集凭据并将它们呈现给模型,而模型又应该响应“无效”并重新请求凭据(或完全失败),或者如果有效,则转到下一页。

在实践中,恕我直言,您不应该放置很多(如果有的话)操作数据的代码,除了格式化它 - 创建表条目,用链接包装等。您不应该(恕我直言)查询数据库,执行计算,等等,在 JSP 中 - 让模型来做。

正如 duffymo 所说,JSP 是旧的,但它们仍然有效。我建议您也考虑 AngularJs (ng)(在阅读 V1 v. V2 的争议之后)。

关于java - JSP 和 MVC 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39493374/

相关文章:

Java 语法到 Groovy 语法

Java 泛型 : Can I Use an Object as a Formal Parameter?

database - JPA 实体 - 指定持久性单元?

java - 未找到 ManagedExecutorService

jakarta-ee - 将 JBoss 5.1 从 EL 2.1 升级到 EL 2.2?

java - 弗洛伊德-沃歇尔算法

java - maven 程序集插件的 Gradle 模拟

jsp - Vaadin Web 应用程序(使用 tomcat)从数据库查询时获取 NullpointerException

html - 如何提交更改下拉列表的表格?

mysql - 通过jsp向表插入值的问题