使用Java内置的Http Server服务器构建Web应用

服务器
使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运行大型Web应用的必备神器。

 一、概述

使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运行大型Web应用的必备神器。

虽然Java的设计初衷就是用来开发大型应用的,然而有时候我们开发的程序只是简单的小型应用,对于功能的需求和性能的要求并不高, 可能仅仅就几百行甚至几十行代码,这个时候使用tomcat之类的Web服务器去运行就显得有点大材小用了。 比如说只是将数据库中的数据读出来转换成JSON,以Web服务的形式吐给调用方这样的阉割型Web应用。

[[217386]]

如下图所示

二、最简单的Java Http服务器

其实在jdk中已经内置了用于此类简单Web应用构建需求的类库了,sun公司提供的 com.sun.net.httpserver 包就是用来帮助我们解决这类问题的。

如上代码清单所示, 仅仅几行代码就可以构建一个五脏俱全的Web应用了。执行代码,在浏览器地址栏里代开链接

http://localhost:8001/test

就能运行这个段程序,输入的结果为helloworld

三、获得外部数据

那在这个程序中如何获取到外部传递过来的数据呢?比如说URL上的查询字符串,POST提交的数据等,其实也很简单

上面的代码清单标识了实现的方法。

注意,要保证上面代码编译通过, 需要引入commons-io.jar,此包中提供将InputStream转换成String的方法。

四、并发处理

com.sun.net.httpserver似乎默认不支持同时处理多个请求,一旦有并行的请求涌入,需要排队等待程序处理,导致Web程序相应卡顿。自定义实现的方法也很简单,为每个请求开一个新的线程处理即可, 如下代码清单所示

五、优点

Java内置Web服务器在功能、性能、稳定等方面是无法和tomcat和jetty之类的专业Web服务器相比的, 它的优点主要是开发和部署方便简单, 把程序代码编译成jar包后,丢到装有jvm的服务器上, 直接运行就可以了,省去了安装相关的软件、依赖, 配置复杂的环境等工作量。

但是, 在一些各方面要求都比较高的生产环境下,还是建议使用专门的Web服务器,毕竟它们久经考验,能满足所有功能需求,并且出问题的几率低。 

责任编辑:武晓燕 来源: 带你撸出一手好代码
相关推荐

2017-11-10 08:58:49

Web服务器应用程序

2023-04-19 07:39:55

RustHTTP服务器

2012-09-19 09:47:58

PHPWeb服务器

2018-10-09 09:28:12

HTTPHTTP协作服务器

2011-03-21 14:41:04

LAMPapacheweb

2011-04-07 13:39:24

WebHTTP

2012-02-23 10:02:08

Web服务器应用服务器

2009-01-16 14:37:57

TomcatWeb服务器应用服务器

2022-01-12 08:49:33

CaddyWeb服务器Go语言

2019-05-14 09:39:07

Web服务器Web容器应用程序服务器

2018-03-20 14:24:10

Web服务器HTTP

2011-03-29 15:30:20

Zabbix服务器

2019-04-24 15:13:16

Web服务器应用服务器Web容器

2010-05-12 15:20:19

IIS 服务器

2012-04-01 09:42:22

2023-11-29 07:34:25

2023-08-29 15:07:35

无服务器计算云计算

2009-01-10 19:32:36

2019-07-04 15:00:32

PythonHTTP服务器

2019-08-22 15:26:24

HTTP服务器Python
点赞
收藏

51CTO技术栈公众号