是否有像Sinatra(适用于Ruby)或Web.py(适用于Python)一样简单的Java Web框架?
如果你想要一个严格的Java框架,Spark可能是一种选择:
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}
Play。虽然我没有亲自尝试过,但听说它非常优秀,并且对初学者来说相当友好。
我认为用Java生成网页内容最简单的方法是编写一个Servlet。就像web.py允许您定义GET
方法一样,您可以实现Servlet的doGet()
方法并将数据直接返回给客户端。
这里是Servlets教程的链接。您还需要知道如何打包和部署Web应用程序;对此,我通常会指向Tomcat手册(参见“第一个Web应用程序”一节)。
编写和部署Java Web应用程序不会像Ruby或Python那样快,但Java并不特别以其简洁性而闻名。
如果您不一定需要Java,请查看Grails。它是一个基于Groovy构建的Web应用程序框架,Groovy是一种类似于Python和Ruby的动态语言,可编译成JVM。
Java EE 6服务器,如GlassFish默认捆绑它。
如果您使用Tomcat,您可以使用Jersey、Apache CXF或Restlet实现。
使用JAX-RS注释可以感觉像Sinatra或Merb。顺便说一下,您不必使用Java作为语言,您可以使用Scala、Groovy、JRuby等。
https://github.com/webdevwilson/graffiti
https://github.com/bleedingwolf/Ratpack
非常轻量级,类似于Sinatra。可能有点前卫,但仍然有趣和有前途。
使用SerfJ是开发Java REST Web应用程序的最简单方法。它帮助您在优雅的MVC架构上开发应用程序,更注重约定而非配置,因此,例如,您不必拥有配置文件或注释来指定哪个视图为控制器方法提供服务。但是,SerfJ是非常灵活的库,因此,如果您想跳过这些约定,可以根据自己的喜好配置应用程序的行为。
该框架尝试满足JSR 311规范,但并不遵循该规范的每个要点,因为目的是拥有一个非常直观的库,并且规范的某些方面超出了SerfJ的范围。
SerfJ是开源的,并在Apache许可证第2.0版下发布。