java 如何搭建http服务器,第1张

看你具体是想做什么,现在现成的开源的java的http服务器有很多,像tomcat之类的都有http服务器功能,如果你只是单纯的需要用的话,直接用tomcat就好了

但是如果你是做要自己用java实现一个http服务器的话就要稍微麻烦一点

http服务器,本质上还是基于tcpip协议的服务器,首先用java的ServerSocket监听一个端口(也可以使用开源的server组件,如quickserver之类的),然后对客户端发上来的数据进行处理,这里就需要了解一下http协议了,因为上来的数据,都是按照http协议来组织的,你需要将请求数据解析后,将响应数据组织成http的响应,发回给客户端。这样一个简单的http服务器就实现了。

但是这个请求和响应都有很多种类,一个完整的http服务器应该要都能够支持,所以这里面的工作量还是有一点的。

另外,上面说的http服务器只是一个静态的服务器,如果你想让你写的服务具有动态功能,那你的服务器还得提供javaee的容器功能,这样做下去,没准你也能写一个tomcat出来了……

Java是一门编程语言,可以用来编写各种类型的程序,包括Web应用程序。而Tomcat是一个Web应用程序服务器,可以用来运行Java Web应用程序。

尽管使用Tomcat可以轻松地创建和部署Java Web应用程序,但是Java语言本身也有内置的HTTP服务器,可以用来创建和运行Web应用程序,而不需要使用Tomcat这样的第三方服务器。

Java内置的HTTP服务器主要包括两个:HttpURLConnection和HttpServer。HttpURLConnection可以用来创建HTTP客户端,发送HTTP请求和接收HTTP响应。而HttpServer则是一个简单的HTTP服务器,可以用来创建和运行Web应用程序。

使用Java内置的HTTP服务器来创建Web应用程序的好处是,不需要依赖第三方服务器,可以在运行程序的同时,轻松地创建和运行Web应用程序。另外,使用Java内置的HTTP服务器还可以减少程序的依赖,降低程序的复杂性和维护成本。

当然,如果需要创建更为复杂的Web应用程序,使用Tomcat等第三方服务器仍然是一种不错的选择,因为这些服务器提供了更多的功能和扩展性,可以满足更加复杂的需求。

当初在Apache开发时还未出现Servlet的概念,所以Apache不能内置支持Servlet。实际上,除了Apache,其他许多Web服务器软件都不能直接支持Servlet。为了支持Servlet,通常要单独开发程序,这种程序一般称为服务器小程序容器(Servlet Container),有时也叫做服务器小程序引擎(Servlet Engine)。它是Web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应,它在Servlet的生命周期内包容和管理Servlet,是一个实时运行的外壳程序。运行时由Web服务器软件处理一般请求,并把Servlet调用传递给“容器”来处理。Tomcat就是满足这种需要的JSP/Servlet引擎,是Sun公司的JSP/Servlet的官方实现。

按照工作模式的不同,Servlet容器可以分为以下3类:

1.独立运行的Servlet容器

在这种模式下,Servlet容器作为构成Web服务器的一部分而存在。当使用基于Java的Web服务器时,就属于这种情况。这种方式是Tomcat的默认模式,然而大多数Web服务器并不是基于Java的,所以就产生了下面的两种其他类型。

2.内置的Servlet容器

Servlet容器由Web服务器插件和Java容器两部分组成。采用这种方式时,Web服务器插件需要在某个Web服务器内部地址空间中打开一个JVM(Java虚拟机),在此JVM上加载Java容器并运行Servlet。如果客户端调用Servlet,Web服务器插件首先获得此请求的控制并将它传递(使用JNI技术)给Java容器,然后Java容器把此请求交给Servlet来处理。这种方式运行速度较快,并且能够提供良好的性能,适用于单进程、多线程服务器,但是在伸缩性方面存在不足。

3.外置的Servlet容器

采用这种方式时,Servlet容器运行在Web服务器外部地址空间。先由Web服务器插件在某个Web服务器外部地址空间打开一个JVM(Java虚拟机),然后加载Java容器来运行Servlet。Web服务器插件和JVM之间使用IPC(进程间通信)机制(通常是TCP/IPSockets)。如果客户端调用Servlet,Web服务器插件首先获得此请求的控制并将它传递(使用IPCs技术)给Java容器,然后Java容器把此请求交给Servlet来处理。这种方式对客户端请求的处理速度不如内置Servlet那样快,但是在其他方面(如可伸缩性、稳定性等)具有优势。

Tomcat属于Servlet容器,其工作模式也分为上述3种,所以Tomcat既可被用作独立运行的Servlet引擎(便于开发和调试),又可作为一个需要增强功能的Web服务器(如当前的Apache、IIS和Netscape服务器)插件。在配置Tomcat之前,就需要确定采用哪种工作模式,工作模式(1)比较简单,直接安装Tomcat即可,工作模式(2)和(3)有些复杂,除了安装Tomcat、Web服务器之外,还需要安装连接两者的中间连接件。

专家提示在本书中,如果没有特殊说明,Tomcat运行都采用独立运行的Servlet容器 方式。

Java Servlet API是Servlet容器和Servlet之间的接口,它定义了Servlet的各种方法,还定义了Servlet容器传送给Servlet的对象类,其中最重要的是请求对象ServletRequest和响应对象ServletResponse。这两个对象都是由Servlet容器在客户端调用Servlet时产生的,Servlet容器把客户请求信息封装在ServletRequest对象中,然后把这两个对象都传送给要调用的Servlet,Servlet处理完后把响应结果写入ServletResponse,然后由Servlet容器把响应结果发送到客户端。

参考:https://zhidaobaiducom/question/1368022941296732179html

Java 的应用服务器很多,从功能上分为两大类,JSP 服务器和 Java EE 服务器,也可分其他小类。

JBoss AS

在J2EE应用服务器领域,Jboss是发展最为迅速的应用服务器。由于Jboss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得Jboss广为流行。另外,Jboss应用服务器还具有许多优秀的特质。

其一,它将具有革命性的JMX微内核服务作为其总线结构;

其二,它本身就是面向服务的架构(Service-Oriented Architecture,SOA);

其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。因此,它是高度模块化的和松耦合的。Jboss用户的积极反馈告,Jboss应用服务器是健壮的、高质量的,而且还具有良好的性能。为满足企业级市场日益增长的需求,Jboss公司从2003年开始就推出了247、专业级产品支持服务。同时,为拓展Jboss的企业级市场,Jboss公司还签订了许多渠道合作伙伴。比如,Jboss公司同HP、Novell、Computer Associates、Unisys等都是合作伙伴。

JOnAS

JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 23和JSP 12规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。

JFox30

JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从30开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台

什么是框架?就是一堆已经定义好的有特定功能的代码的集合,当然,功能小一点的一般不称为框架,但是达到某个高度,向spring这种的就叫框架了。java中往往在工程中导入这些jar包就可以调用它来实现特定功能。

tomcat其实是用一些别人已经定义好的包,如naming-factoryjar,wsdl4jjar,saajjar,jasper-compiler-jdtjar等等来构建一个自己的功能,这个功能是作为web server。他现在是一个应用系统,而不是单单的开发给别人的api了,所以不能叫一个框架。

Sun公司的Java

EE

5标准是一种行业标准,而作为这种标准的实现,开源的Java

EE

5应用服务器应该与其尽量的保持一致,因此Java

EE

5的一致性是一个很重要的指标。在这三种开源的实现中,Geronimo是实现得最好,与Java

EE

5标准最贴近的应用服务器。JBoss

42支持绝大部分Java

EE

5的特性,当然,不久即将发布的JBoss

5将完全支持Java

EE

5的所有特性。而Tomcat一般看成是JSP/servlet的容器,仅仅支持Java应用服务器的基本特性。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java 如何搭建http服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情