从前端/UI 开发人员的角度来看,最近的 asp.net MVC 经验大大减少了我对 .NET 的厌恶。Java中是否有类似的东西,或者我只是模糊地理解为为了某种多任务处理性能而做CGI以外的事情总是需要与HTML紧密耦合的servlet/portlet业务?
如果没有,我需要阅读什么来帮助用 Java 编写一些东西来使这成为可能?一些流行的图书馆是罪魁祸首吗?
另外,如果这些神秘的 n-let 提高了性能,为什么这么多 Java 站点在我看来加载时间更慢?
从前端/UI 开发人员的角度来看,最近的 asp.net MVC 经验大大减少了我对 .NET 的厌恶。Java中是否有类似的东西,或者我只是模糊地理解为为了某种多任务处理性能而做CGI以外的事情总是需要与HTML紧密耦合的servlet/portlet业务?
如果没有,我需要阅读什么来帮助用 Java 编写一些东西来使这成为可能?一些流行的图书馆是罪魁祸首吗?
另外,如果这些神秘的 n-let 提高了性能,为什么这么多 Java 站点在我看来加载时间更慢?
我经常使用的框架是 Spring MVC。让您将视图 (JSP) 与业务逻辑分开是一项合理的工作。
编辑:仅 JSP 是不够的。可以将所有逻辑放到一个 JSP 中——可以创建一个新的数据库连接,获取一些行,执行一些逻辑,然后显示它们。这是一个非常糟糕的主意。通过使用 Spring MVC(或其他 MVC 框架——可能还有其他框架),您可以分离业务逻辑(模型)、用户对事物的看法(视图)以及获取数据并将所有内容连接在一起的逻辑(控制器)。
我不确定您所说的与前端的“紧密耦合”是什么意思。
Servlet 不需要总是要求它们知道调用它们的客户端。但是他们必须就要来回发送的东西达成一致。将两者完全分离的一种方法是使用商定的有线协议,无论是基于 REST 的 HTTP 或 XML 还是 - 可怕的 - SOAP。消息是交换的,但生产和消费的细节是相互隐藏的。
如果您使用我衷心支持的 Spring,那么您不必被 JSP 所束缚。Spring Web 服务和 Velocity 生成的视图是其他选择。
Struts、Java Server Facelets,比我想列出的更多 MVC、MVVM 和任何其他目前流行的模式通常都有一个 Java 版本在某个地方浮动,具有一定程度的有用性或实用性(有些好有些坏,就像其他所有模式一样)世界的一部分)。
阅读模式和基础计算机科学。也许去阅读大量的 RFC 路线,因为这条路人迹罕至,并且会给你提供超出你最疯狂梦想的信息,让你在普通程序员看来是不可思议的。完成此操作后,实现诸如 MVC 模式之类的解耦系统将看起来很简单。
许多 Java 站点的加载时间似乎较慢,原因有很多,包括 1) 管理不善 2) 编码不善 3) 首次访问时的 JSP 编译时间(即阅读 JSP 的工作原理)。
无论如何,我希望这个答案有所帮助。
另一方面,看看Spring MVC (3.0),它不支持 JSF 之类的组件样式(我认为是 .asp),但它是一个非常好的 MVC 框架。