问题 ASP.NET和Java Servlets / JSP之间的技术差异


我对JSP的理解是,第一次加载的每个JSP页面都被编译成Java Servlet。这对于ASPX页面是否相同(当然,不是对于servlet,而是ASP.NET等效项)?

还有别的 技术 我应该注意JSP和ASP.NET(MVC 2)的差异吗?


6288
2017-07-30 12:18


起源

有关: JSF / Servlet / JSP有什么区别? 和 什么是ASP / PHP的Java替代品? - BalusC


答案:


JSP页面被翻译成Java源代码,然后编译成类文件(包含Java字节代码)以供将来执行。在那之后,它们实际上是由JVM编译的JIT(Just In Time),当它们需要执行时(因此它们非常快)。

我猜测.NET应用程序有类似的过程,因为它们被编译成.NET程序集。这有点像Java的类文件,除了它们是在CLR上运行的IL(中间语言)。在运行时,IL也被转换为本机机器指令以供执行。

实际的构建/运行时机制(从高级别)可能非常相似。

编辑

以下是有关ASP.NET的一些细节: http://msdn.microsoft.com/en-us/library/ms366723.aspx

此外,对于基于Java的Web应用程序,运行它们的容器可以配置为在部署应用程序时预编译JSP。然后,JVM将类文件加载到内存中,并从那一点开始处理JIT编译/缓存。


5
2017-07-30 12:32



这里有关于ASP.NET预编译的更多信息: msdn.microsoft.com/en-us/library/ms229863(VS.80).aspx - Derrick


ASP可以模糊地与JSP / Servlet进行比较。 ASP.NET可以模糊地与JSF(构建在Servlet / JSP之上)进行比较。

ASP.NET和JSF都是 基于组件 框架,而JSP和ASP大多是 视图 技术。

正确完成后,JSP / Servlet可用于拥有 操作为主 控制器处理命令并转发到视图以进行渲染(MVC)的方法,该视图将视图渲染与业务逻辑分离。

但是基于组件的框架采用的方法是不同的,每个组件都可以触发回调(业务逻辑)并负责自我渲染。他们还依赖于这个概念 数据绑定,在基于行动的框架中不存在。

基于组件的模型更接近桌面应用程序的编程模型,但是抽象了应用程序的webby性质。这既好又坏。当您想要优化与Web相关的内容(例如友好的URL等)时,这很糟糕。我认为为什么Microsoft稍后会在ASP.NET旁边的基于动作的MVC框架中引入。


9
2017-07-30 12:26



回答的要点 实际 区别。 JSP是一种视图技术。 ASP.NET MVC是一个基于组件的MVC框架。它将苹果与橙子进行比较。 JSP最好与“经典ASP”和ASP.NET MVC与JSF进行比较。 - BalusC