用Java创建web服务器/servlet容器——站在巨人的肩膀上

用Java创建web服务器/servlet容器——站在巨人的肩膀上,java,jsp,servlets,webserver,akka,Java,Jsp,Servlets,Webserver,Akka,首先也是最重要的一点:我想说的是,这主要是个人的锻炼。有很多容器和服务器(Tomcat、Jetty、Winstone)可以满足市场的需求 前几天,我遇到了这个项目,在过去玩过Erlang之后,我觉得用它来构建一个功能强大的web服务器真的很酷 然后我开始做白日梦。如果我可以使用现代框架,以代码高尔夫的方式构建一个几乎完全“站在巨人肩膀上”的web服务器,会怎么样?也就是说:我能利用多少别人的工作 理想情况下,要求类似于: 容错、群集、分布式 易于配置 在可配置端口上支持HTTP、HTTPS和A

首先也是最重要的一点:我想说的是,这主要是个人的锻炼。有很多容器和服务器(Tomcat、Jetty、Winstone)可以满足市场的需求

前几天,我遇到了这个项目,在过去玩过Erlang之后,我觉得用它来构建一个功能强大的web服务器真的很酷

然后我开始做白日梦。如果我可以使用现代框架,以代码高尔夫的方式构建一个几乎完全“站在巨人肩膀上”的web服务器,会怎么样?也就是说:我能利用多少别人的工作

理想情况下,要求类似于:

  • 容错、群集、分布式
  • 易于配置
  • 在可配置端口上支持HTTP、HTTPS和AJP
  • 支持接口绑定和多个域
  • 通过可插拔接口支持JSP、Jython等
  • 支持允许实现WebDAV、代理和URL重写等功能的模块
在这个关头,我最大的绊脚石是你究竟如何使用Jasper、Jetty、GlassFish或任何东西来解释JSP,而不用担心它们带来的所有其他东西,比如网络

对功能的任何其他建议都会非常棒。我也在研究非传统的配置方法,看看是否有什么东西比XML或属性文件更让我喜欢。对于熟悉Apache的人来说,有时需要编写一些脚本,有时只需要键/值对


所以,无论如何,请给我一些建议。

至少Tomcat已经将其JSP引擎作为一个模块实现了。它不是单独发布的,可能需要一些工作才能将其与Tomcat代码的其余部分完全分离


它有一个单独的名字(贾斯珀)和。它可以在
org.apache.jasper
包(及以下)中找到。

我已经看过几次了,我想我只是觉得应该有更好的方法。我们讨论的是从web服务器内部调用ant任务来创建已编译的JSP。我想我会记住这个方法。ant任务只是一个前端。您可以查看整个
org.apache.jasper
包,查找其入口点并以编程方式使用它。事实上,有一个ant任务只能证明代码不依赖于正在运行的Tomcat实例。我将研究它。如果没有人能想出一种更好的插销式组件,那么在我仔细研究之后,我会继续把它作为答案。我仍然不确定我是否喜欢JspC路线,但如果它是我不必从头实现自己的容器就可以得到的,那么我将采用它。谢谢