C# ASP.NET和Java servlet/JSP之间的技术差异

C# ASP.NET和Java servlet/JSP之间的技术差异,c#,java,asp.net,jsp,asp.net-mvc-2,C#,Java,Asp.net,Jsp,Asp.net Mvc 2,我对JSP的理解是,第一次加载时的每个JSP页面都被编译成一个Javaservlet。对于ASPX页面也是这样吗(当然,不是进入servlet,而是ASP.NET的等价物) 我还应该注意JSP和ASP.NET(MVC2)在技术上的哪些区别?ASP可以模糊地与JSP/Servlet进行比较。 NET可以模糊地与JSF(构建在Servlet/JSP之上)进行比较 ASP.NET和JSF都是基于组件的框架,而JSP和ASP大多是视图技术 如果做得正确,JSP/Servlet可以用于具有基于动作的方法,

我对JSP的理解是,第一次加载时的每个JSP页面都被编译成一个Javaservlet。对于ASPX页面也是这样吗(当然,不是进入servlet,而是ASP.NET的等价物)


我还应该注意JSP和ASP.NET(MVC2)在技术上的哪些区别?

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

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

如果做得正确,JSP/Servlet可以用于具有基于动作的方法,其中控制器处理命令并转发到视图进行渲染(MVC),该方法将视图渲染与业务逻辑分离

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


基于组件的模型更接近于桌面应用程序的编程模型,但抽象掉了应用程序的webby特性。这是好事,也是坏事。如果你想选择与web相关的东西,比如友好的URL等,这是不好的。这就是为什么微软后来在ASP.NET旁边引入了一个基于动作的MVC框架

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

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

实际的构建/运行时机制(从高层)可能惊人地相似

编辑

以下是有关ASP.NET的一些详细信息:


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

下面是关于ASP.NET预编译的更多信息:回答实际差异的要点。JSP是一种视图技术。NET MVC是一个基于组件的MVC框架。这是在比较苹果和桔子。JSP最好与“经典ASP”和带有JSF的ASP.NETMVC进行比较