在.NET中,Servlet和Applet的对应物是什么?

13

我想了解在.NET中与servlets和applets相对应的内容,但我对JAVA并不是很熟悉。

我认为applets可以与silverlight相关,这意味着您可以独立于浏览器编写代码,但实际情况并非如此,因为(除其他事项外)您可以在浏览器之外重复使用applet。

我需要展示基于JAVA的大学课程的Web技术,并且只要我能演示相同的东西,就可以使用.NET。

任何帮助或想法都将不胜感激!

5个回答

15

.Net中,HTTP处理程序(.ashx)可能是最接近servlet的东西。至于applets,没有直接对应的内容,但silverlight可能是最接近的(虽然它更接近于Flash / JavaFX)


1
HTTP处理程序更类似于Servlet过滤器,而不是Servlet本身。请阅读MSDN文档以了解更多信息。 - sangupta
我同意Sandy的观点。ActiveX控件更像小程序而不是Silverlight。 - OscarRyz
@Sandy:你是指Http Handlers还是Http /Modules/?后者提供了“动态拦截请求和响应以进行转换[...]”的功能(http://java.sun.com/products/servlet/Filters.html)。 - Richard

7
我同意Sandy的观点,与JSP相比,ASP.Net更好(实际上JSP只是一种专门的servlet)。.Net servlet的类似物似乎是基类System.Web.UI.Page。 这篇文章很好地总结了比较(下面的例子显然是剽窃的)
import javax.servlet.*; 
import javax.servlet.http.*;

import java.io.*;

public class SimpleServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, 
            HttpServletResponse response)
            throws ServletException, java.io.IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html><body>");
        out.println("Simple Servlet Body");
        out.println("</body></html>");

        out.close();
    }
}
//-----------------//
using System; 
using System.Web; 
using System.Web.UI; 

public class SimpleServlet : System.Web.UI.Page
{
    private void Page_Load(object sender, EventArgs args)
    {
        Response.ContentType = "text/html";

        Response.Write("<html><body>");
        Response.Write("Simple Servlet Body");
        Response.Write("</body></html>");
    }
}

+1个很好的示例,展示了将Servlet作为System.Web.UI.Page使用,而在aspx中没有标记-反过来似乎是HttpHandler。 - JohnIdol

2
Java applets似乎最类似于.NET中的WPF浏览器应用程序,如果不是Silverlight 2.0。在这方面,Java和.NET之间没有完美的镜像-某些技术在某些方面更相似,而其他技术在不同方面更相似。鉴于Java主要是为了开发小应用程序而开发的,而.NET Framework则是为了桌面应用程序而开发的,自然会有根本性的差异。虽然WPF浏览器应用程序当然受限于Windows平台(不像Silverlight),但它们可能更像小应用程序,因为它们可以利用整个.NET Framework等其他功能。此外,正如已指出的那样,Silverlight更类似于JavaFX。
关于Servlets(Java的Web应用程序),它的等效物是整个ASP.NET(尤其是Web应用程序而不是网站),但这有点模糊。更准确地说, JavaServer Pages 最类似于 ASP.NET(无论是WebForms还是MVC [模型-视图-控制器])。对于前者(Java),内容被编译成Java Servlets,而对于后者(.NET),内容被编译成.NET程序集。所以,也许.NET程序集中的 Web应用程序最类似于Servelet——但老实说,我对Java方面的事情了解不够,难以得出结论。
有趣的是,.NET和Java的历史略有不同(尽管它们都是VM框架,Java启发了.NET),然而在许多方面,它们随着时间的推移已经趋于一致,因此现在你几乎可以在这两个框架中找到相当的技术,尽管在其中一个框架中,开发和/或成功往往更加显著(Silverlight是支持Microsoft的一个例子,而applets可能支持Sun)。总之,希望我至少提供了关于这两种技术的相似之处和不同之处的概述。

Servlet作为.NET Http处理程序怎么样? - JohnIdol
正如JonoW的回答中已经有人指出的那样,我相信Servlet过滤器更类似于HttpHandlers。 - Noldorin

1

.NET中与Applets相对应的是ActiveX控件。Silverlight用于RIA,类似于Adobe Flash运行时。

Servlet可以与ASP.NET页面进行比较。有关它们如何进行端到端比较,请阅读MSDN上的以下文章:http://msdn.microsoft.com/en-us/library/aa478987.aspx


不,我猜ASP.NET更像JSP,或者甚至更像JSF。 - Adeel Ansari
我认为经典的说法是ASP基本上相当于JSP。 - JohnIdol
使用codebehind模型的ASP.NET基本上相当于Servlet结构,您可以通过代码生成所有内容。上面的链接解释了微妙的差异。但是,确实可以将ASP与JSP进行比较。 - sangupta

1
如果你想要展示.NET和Servlets/ Applets之间的一些相似之处,并尝试进行演示,那么可以这样做: 1)Servlet演示: 创建一个.aspx文件,直接进入codebehind类。 使用浏览器调用.aspx文件,并让codebehind类响应。
我经常使用servlet作为与JavaScript AJAX调用通信的方式,在行为方面没有任何区别,我的JavaScript函数不知道它正在与哪种语言或技术通信。
2)Applet演示: 这有点棘手,因为Silverlight似乎是为了与Flash竞争而设计的,但是您可以制作一个时钟小部件,将其放在网页上,然后您可以解释说,通过一些良好的设计,两者都可以在浏览器外运行。
最好的方法是使用两种语言进行演示,以便进行比较,展示解决问题的多种方法,并且在选择使用哪种技术时需要进行权衡。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接