是否有像sinatra(用于ruby)或web.py(用于python)的简单java Web框架?
答案 0 :(得分:50)
如果您想要一个严格的Java框架,Spark可能是另一种选择:
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}
答案 1 :(得分:22)
Play。我自己没有尝试过,但只听到有关它的好东西,似乎对初学者友好。
答案 2 :(得分:17)
我认为通过Java生成Web内容最简单的方法就是编写一个Servlet。就像web.py允许您定义GET
方法一样,您可以实现Servlet的doGet()
方法并将数据直接写回客户端。
这是Servlets教程的link。您还需要知道如何打包和部署Web应用程序;为此,我通常会将人们指向Tomcat manual(请参阅标题为“第一个Web应用程序”的部分)。
编写和部署Java Web应用程序的速度不会像Ruby或Python那样快,但Java并不是因其简洁性而闻名。
如果您不严格要求Java,请查看Grails。它是一个基于Groovy构建的Web应用程序框架,它是一种类似于Python和Ruby的动态语言,可以编译为JVM。
答案 3 :(得分:12)
<强> JAX-RS. 强>
Java EE 6像GlassFish这样的服务器默认捆绑它。
如果您使用Tomcat,则可以使用Jersey,Apache CXF或Restlet实施。
使用JAX-RS注释,Web开发感觉像Sinatra或Merb。顺便说一句,您不必使用Java作为语言,您可以使用Scala,Groovy,JRuby ......
答案 4 :(得分:7)
如果您只是在纯 Java中寻找演示框架,那么对我来说,Stripes 1 是最接近Java MVC框架的RoR理念:简单,优雅,并且需要最少的配置。
1 Stripes率先推出了用于Java Web开发的 Convention over Configuration 方法。虽然其他一些框架已经采用了一些原则(比如Spring MVC或带有插件的Struts2),但我仍然更喜欢Stripes,因为它做了一件事,做得很好。
答案 5 :(得分:7)
答案 6 :(得分:4)
同样看看这两个:1。activeweb和2. dropwizard
答案 7 :(得分:3)
检查SerfJ : Simplest Ever Rest Framework for Java:
使用SerfJ是开发Java REST Web的最简单方法 应用。它可以帮助您优雅地开发应用程序 MVC arquitecture,更加重视公约 配置,例如,您不必具有配置 文件或注释,以指定哪个视图服务 控制器的方法。但是,SerfJ是非常灵活的库,所以如果 你想跳过这些约定,你可以配置 您喜欢的应用程序的行为。
该框架试图满足JSR 311规范,但事实并非如此 遵循每一点,因为目的是拥有一个非常 直观的库,以及规范的某些方面都已出来 SerfJ的范围。
SerfJ是opensource,并在Apache License,Version下发布 2.0。
答案 8 :(得分:3)
您可能希望了解这两个常规项目:
https://github.com/webdevwilson/graffiti
https://github.com/bleedingwolf/Ratpack
真的很像Sinatra。可能会有点在前沿:-)有趣和有希望永远不会少。
答案 9 :(得分:3)
如果必须开发业务或数据库应用程序OpenXava是一个不错的选择。 OpenXava允许您开发一个完整的AJAX Web应用程序,只编写域类,无需生成代码并生成可用于生产的应用程序。代码很少,效果很好。
答案 10 :(得分:2)
支持我可以找到的Servlet的最小的“可用”Web服务器是Miniature JWS。老实说,没有理由运行不支持Servlet的Java Web服务器。如果您想要执行REST,Restlet有一个内置的HTTP守护程序,这意味着您可以将其作为stand alone web server运行。
答案 11 :(得分:2)
HybridJava framework非常简单。当然,它构建为类似于Servlet API之上的API,但处理页面和组件而不是请求和响应。换句话说,它确实是MVC。
答案 12 :(得分:1)
Step是受Sinatra启发的Scala框架。
答案 13 :(得分:1)
我可以向你推荐Struts2,因为我喜欢插件架构和常规插件,开发简单快捷。