有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

web服务如果我想运行Java代码,我应该使用什么web服务器?

目前,我有很多Java,它可以做各种漂亮的东西,我对它很满意。这段代码是命令行驱动的,到目前为止都很不错,但我最近决定要通过web服务提供这项功能。因为我的代码很复杂,而且我对它的编写方式很满意,所以我不想经历将它移植到其他语言的痛苦。因此,我开始了一次谷歌之旅,以了解存在哪些web服务器(在Linux机器上,尽管听到没有限制的答案很有趣)

据我所知,似乎有两种可行的选择:Apache TomcatSun Java Server

为什么选择一个在另一个之上?它们各自的优点和缺点是什么?或者,也许还有第三个更容易、更灵活、更不麻烦的方法

有人吗


共 (5) 个答案

  1. # 1 楼答案

    你的问题实际上有点太模糊和宽泛了。事实上,您可以在任何您喜欢的机器上运行Java代码,而不管您用什么语言编写基于Web的接口。例如,您可以创建一个与“后端”Java应用程序(您称之为“命令行应用程序”)交互的基于PHP的网站。唯一的要求是在服务器机器上有一个JRE。然后基本上所有的web界面都满足了:CGI、PHP、ASP、Python等等。只要它有权访问底层命令行运行时,这在PHP示例中是由exec()完成的

    但是Java,实际上是JavaEE,还提供了一个web应用程序编程接口:JSP/Servlet API,大型Java EE API的web组件。这使得与“命令行Java应用程序”的集成更加无缝。基本上,您可以将应用程序放在类路径中,并以Servlet类的方式导入/访问/使用它,即realJava方式:

    YourApplication app = new YourApplication();
    Result result = app.doStuff();
    // ...
    

    为了能够运行JSP/Servlet(JSP最终实际上也是一个Servlet),您需要ServletAPI的具体实现(整个JavaEE只是一个抽象规范)Apache Tomcat是一个好的开始,另一个流行的选择是Eclipse Jetty。这些是实现ServletAPI的“简单”servletcontainers,Jetty是一种更嵌入式的方法(您可以将其配置为“普通”Java应用程序并运行)。但是,如果您还需要支持/覆盖JavaEEAPI的其他方面,那么您需要一个应用服务器,例如Sun GlassfishJBoss AS(顺便说一下,这两个服务器都使用Tomcat作为servletcontainer部分)

    要了解更多关于JSP/Servlet的信息,我可以推荐Coreservlets.com tutorials

  2. # 2 楼答案

    ApacheTomcat应该做得很好

  3. # 3 楼答案

    在web服务器中运行代码的标准概念是Sun的“ServletAPI”

    本质上,它提供了一些web服务器用来调用代码的接口,并定义了web服务器的行为方式。这允许您编写非常通用的代码,这些代码可以在实现ServletAPI的各种web容器中运行。有关详细信息,请参阅Wikipedia文章-http://en.wikipedia.org/wiki/Java_Servlet

    根据您的需要,它们也有各种尺寸。有些小到足以嵌入到您自己的应用程序中,有些非常大。ServletAPI允许您不必在意

    对于初学者来说,最快的启动和运行方法是下载完整版本的Netbeans,其中包括对完成此类工作的完全支持,并具有内置的servlet容器

  4. # 4 楼答案

    many containers for Java web applications,他们都有自己的长处和短处。如果您正在寻找一个支持业务应用程序的容器,您可能应该看看它们之间的区别,并找出适合您的业务和IT驱动程序的容器

    关键是它们都支持servlet规范——您的Web应用程序可以在其中任何一个中运行——这意味着您可以轻松改变主意。其中一些还将支持更多的Java企业版规范,因此对于您的需求来说可能太重了

    如果你刚刚开始,我建议你用雄猫。它是基本的,但它可靠、运行和启动速度快,而且它有一个非常简单的基于web的webapp部署界面

  5. # 5 楼答案

    简单、灵活且不麻烦,这将是Jetty,但Simpleweb也可能有用。你对你的软件说的不多,所以我不太确定,但是对于一个命令行程序,我认为你不需要所有的JavaEE东西
    主流服务器是these
    我认为ApacheTomcat vs Glassfish(Sun Java服务器)的讨论与您的需求无关,任何人都可以