Jetty/Tomcat 需要用 Java 构建网页吗?

Posted

技术标签:

【中文标题】Jetty/Tomcat 需要用 Java 构建网页吗?【英文标题】:Jetty/Tomcat needed to build a webpage in Java? 【发布时间】:2012-06-29 01:17:04 【问题描述】:

我正在尝试使用 Java 学习 Web 编程,但我遇到了一堆支持 servlet 来创建网页的框架,例如 Jetty 和 Apache Tomcat。

如果我想创建一个只有一个按钮(不是文本)的网页,是否需要 Jetty/Tomcat?根据我的阅读,似乎所有教程都使用 Jetty/Tomcat 和 servlet 来创建一个简单的基于文本的网页。

如果我希望我的服务器做的只是接受传入连接并在网页上显示一个按钮(例如,用户只需键入 hhtp://1.1.1.1:8080 就会显示一个带有按钮的网页) ,是否还需要 Jetty 或 Tomcat?没有他们我能做到吗?

如果有,有例子吗?

【问题讨论】:

如果是纯 html 页面,您可以使用 Apache WebServer。不需要 Jetty 或 Tomcat。 必须分别考虑配置(端口等)以及设计和编码。 【参考方案1】:

正如 iNan 所指出的,Apache HTTP 对于纯 HTML 来说已经足够了。

但是,我认为您是以最简单的形式引用 Java 网站。如果是这样,请尝试编写 Java Servlet。 servlet 只是 HTTP 响应和请求的入口点。 Servlet 最简单的形式如下所示:

(复制自http://www.mkyong.com/servlet/a-simple-servlet-example-write-deploy-run/)

package com.mkyong;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo1 extends HttpServlet

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<body>");
    out.println("<h1>Hello Servlet Get</h1>");
    out.println("</body>");
    out.println("</html>"); 
     
 

显然,在此过程中还需要设置其他一些东西(请参阅上面的链接),但这是最简单的一个。如果要制作更复杂的基于 Java 的网站,可以使用 JSP(Java Server Page)。

希望这会有所帮助。

【讨论】:

他们是刚毕业的学生,​​别叫我先生 :D【参考方案2】:

如果您想提供网页服务,那么您将始终需要某种形式的 Web 服务器应用程序或库来侦听端口 80 或 8080 并处理传入的 http 请求。

Jetty 或 Tomcat 只是使您能够做到这一点的两个(流行的、成熟的、经过良好测试的)选项。还有很多其他选项 - 参见例如 http://java-source.net/open-source/web-servers

如果您真的想要,您可以使用Java NIO 自己编写一个 Web 服务器组件。但这将是很多工作,绝对不建议初学者使用......

【讨论】:

我认为,在 Netty 这样的库的帮助下,编写自己的服务器可能会更容易。但绝对不是初学者的任务。无论如何:jboss.org/netty【参考方案3】:

Java servlet 以及 ASP 或 php 用于实现服务器端交互性,这意味着您不希望只向客户端(浏览器)提供纯 HTML,而是通过能够添加智能级别生成一个 ad-hoc 网页,例如通过在其中插入数据库中的数据。

因此,如果您查看 servlet 的代码,它的作用正是:生成 HTML(或其他格式,但这不是重点)。

它自己的 servlet 只包含让您生成此 HTML 的逻辑,但所有无聊的东西,如网络连接、HTTP 请求和响应管理、cookie 处理等显然不是由您的 servlet 管理的。因为其他一些软件已经在管理它,并为您的应用程序提供这些服务。这就是像 Tomcat 或 Jetty 这样的服务器所做的。所以这个过程的入口点是服务器,它调用你的 servlet 来动态生成你想要传输给客户端的 HTML,获取结果并自行管理所有其余部分,而你不必关心它。

【讨论】:

【参考方案4】:

要提供静态 HTML 内容并响应 HTTP 请求,HTTP 服务器就足够了。 您不需要像 Tomcat 这样的网络服务器。

【讨论】:

HttpServer和Webserver有什么区别?他们不一样吗?? 请参考***.com/questions/30632/…。 HttpServer也是一个WebServer!问题不在于 TomCat,Apache Http Server 的区别。 “HttpServer 和 Webserver 有什么区别?它们不是一样的吗??”——你能澄清一下,它们是如何相同的吗? WebServer 是一个宽泛的范畴,从软件的角度来看,任何有助于传递 Web 内容的东西都是 Webserver,所以 Tomcat 和 Normal Http Server 都是 Webserver。【参考方案5】:

Tomcat 或 Jetty 在某种意义上不像我们使用的那样是 NOR FRAMEWORK。这些是严格意义上的“servlet 容器”或通俗的“服务器”。

Java 世界有很多框架做 web 应用程序。简单的工作您可以在没有 fw 的情况下制作,但更大的项目是其他历史。

“框架”(程序员开发工作的环境)这两个术语都有 JSP 或纯 Java 编码。旧的也需要很多 XML,servlet 3 标准可以使用更多的注解。

【讨论】:

以上是关于Jetty/Tomcat 需要用 Java 构建网页吗?的主要内容,如果未能解决你的问题,请参考以下文章

我想学用JAVA建网站,应该怎么学

总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .

jetty;tomcat;热部署

说一说solr在tomcat,jetty上的运行和安装优缺点

用centos做服务器,外网访问不了所建网站

Spring Boot 使用Jar打包发布, 并使用 Embedded Jetty/Tomcat 容器