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

时间:2010-07-30 12:18:16

标签: c# java asp.net jsp asp.net-mvc-2

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

JSP和ASP.NET(MVC 2)应该注意哪些技术差异?

2 个答案:

答案 0 :(得分:9)

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

ASP.NET和JSF都是基于组件的框架,而JSP和ASP主要是 view 技术。

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

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

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

答案 1 :(得分:5)

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

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

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

修改

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

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