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

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

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

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编译/缓存。

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

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

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

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

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