任何人都可以推荐一个简单的Java Web应用程序框架?
我试图开始我希望在Java中是一个相对较快的Web应用程序,但我尝试过的大多数框架(Apache Wicket,Liftweb)都需要这么多的设置,configuration以及尝试把我的脑袋绕在Maven身上,同时把整个事情和Eclipse一起玩,我花了整个周末的时间,试图让我写第一行代码!
任何人都可以推荐一个简单的Java webapp框架,不涉及Maven,令人毛骨悚然的复杂的目录结构,或无数的XML文件,必须手动编辑?
还没有尝试过,但我想
有很大的潜力
来自PHP和经典的ASP,这是第一个听起来很有希望的Java Web框架….
编辑原始问题提问 – 2011-06-09
只是想提供一个更新。
我和Play一起去了,这正是我所要求的。 它只需要很less的configuration,只需要开箱即可使用。 这是不寻常的,因为它避免了一些常见的Java最佳实践,有利于保持尽可能简单的事情。
尤其是,它大量使用静态方法,甚至对传递给方法的variables的名称进行了一些反省,这是JavareflectionAPI所不支持的。
Play的态度是,它的第一个目标是成为一个有用的Web框架,坚持常见的Java最佳实践和习惯用法是次要的。 这种方法对我来说很有意义,但是Java纯粹主义者可能不喜欢它,而且会比Apache Wicket更好。
总而言之,如果您想要构build一个与Ruby on Rails相似的方便简单的Web应用程序,而且要使用Java的工具(如Eclipse),那么Play Framework是一个不错的select。
(更新了Spring 3.0)
我也使用Spring MVC 。
你需要从这里下载Spring
要configuration您的Web应用程序以使用Spring,请将以下servlet添加到您的web.xml
<web-app> <servlet> <servlet-name>spring-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>spring-dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
然后你需要创build你的Springconfiguration文件/WEB-INF/spring-dispatcher-servlet.xml
这个文件的第一个版本可以像下面这样简单:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.acme.foo" /> <mvc:annotation-driven /> </beans>
Spring会自动检测用@Controller
注解的类
一个简单的控制器然后是:
package com.acme.foo; import java.util.logging.Logger; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/person") public class PersonController { Logger logger = Logger.getAnonymousLogger(); @RequestMapping(method = RequestMethod.GET) public String setupForm(ModelMap model) { model.addAttribute("person", new Person()); return "details.jsp"; } @RequestMapping(method = RequestMethod.POST) public String processForm(@ModelAttribute("person") Person person) { logger.info(person.getId()); logger.info(person.getName()); logger.info(person.getSurname()); return "success.jsp"; } }
和details.jsp
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <form:form commandName="person"> <table> <tr> <td>Id:</td> <td><form:input path="id" /></td> </tr> <tr> <td>Name:</td> <td><form:input path="name" /></td> </tr> <tr> <td>Surname:</td> <td><form:input path="surname" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Save Changes" /></td> </tr> </table> </form:form>
这只是关于spring可以做什么的冰山一angular…
希望这可以帮助。
我真的很喜欢 Stripes 。 完整的设置包括一些剪切粘贴XML到您的应用程序的web.xml,然后你就closures了。 不需要configuration,因为Stripes是一个常规configuration框架。 覆盖默认行为是通过Java 1.5注释完成的。 文档很好。 我花了大约1-2个小时阅读教程,并设置了我的第一个应用程序。
我不能对Struts或者Spring-MVC进行深入的比较,因为我还没有build立一个完整的规模(就像我在Struts中那样),但是看起来它可以扩展到build筑相当好。
你正在寻找http://grails.org/
您可以使用Groovy(一种基于Java的dynamic语言)进行编码,并与Java代码,类和库一起顺利运行。 语法既不好学,也远离Java。 试一试,这是一个让网站启动并运行的时间。 只需按照http://grails.org/Installation和http://grails.org/Quick+Start
Greetz,GHad
查看WaveMaker构build一个快速,简单的Web应用程序。 他们有一个基于浏览器的Dojo / JavaScript小部件的拖放devise器,后端是100%的Java。
条纹:相当不错。 一本关于这方面的书已经从实用的程序员中出来: http : //www.pragprog.com/titles/fdstr/stripes 。 没有XML。 需要Java 1.5或更高版本。
挂毯:已经尝试了旧的版本3.x. 我被告知,目前的版本5.x是在testing版,相当不错。
在照顾maven,没有xml和快速包裹你的头脑方面,条纹应该是更好的。
BR,
〜一
Grails是为Groovy编写的,而不是Java。 AppFuse只是减less了启动任何WebApp框架所需的设置时间,而不是提升其中的任何一个。
我build议springMVC。 遵循精心编写的教程之后,您将拥有一个简单,易于使用的自动连接模型(不含XMLconfiguration!)到您喜欢的任何视图技术中。
想要添加一个“删除”行动到您的客户名单? 只需将名为“delete”的方法添加到您的客户控制器,并自动装入URL / customers / delete。
需要绑定你的请求参数到一个对象上? 只需将目标对象的一个实例添加到您的方法中,Spring MVC将使用reflection来绑定您的参数,从而使您的逻辑编写起来就像客户端传递一个强types对象一样简单。
生病的所有被迫的MVC分工? 只要你的方法返回void,并直接写入你的回应的servlet的作家,如果这是你的东西。
Apache Wicket,Liftweb)需要这么多的设置,configuration
我不同意,我把Wicket用于我的所有项目,永远不会回头看! build立起来并不需要太多的时间,甚至一个小时就可以build立一个与Wicket合作的完整环境。
我喜欢Spring MVC,使用2.5个function,涉及的XML很less。
Stripes框架是一个很好的框架。 涉及的唯一configuration是在web.xml中粘贴几行。
这是一个非常简单的基于Java Web框架的请求。
看看忍者网页框架。
它是Rails传统中的纯Java MVC框架。 它不使用任何基于xml的configuration,并且你需要马上开始:会话pipe理,安全pipe理,html渲染,json渲染和parsing,xml渲染和parsing。 它还具有内置的testing环境,并与传统的servlet容器100%兼容。
它使用Maven,但Maven正确使用使得软件开发变得非常简单。 它也允许你立即使用任何的Ide 🙂
顺便说一句 – 开发忍者是非常有效的 – 改变你的代码,并立即看到结果。
退房: http : //www.ninjaframework.org 。
我喜欢写简单的旧servlet + winstone servlet容器。 从那里我在模板(速度,XSLT等)和数据库访问(hibernate,扭矩等)库的螺栓,因为我需要他们,而不是去一个实际的框架。
我真的不明白什么是maven + eclipse工作的大问题,只要你不必更改pom.xml太多:)
用户maven的大多数框架都有可以生成存根项目的maven原型。
所以基本上这些步骤应该是:
- 安装maven
- 添加M2_REPO类pathvariables到eclipse
- 用原型生成项目
- 导入项目到eclipse
至于Wicket,没有理由不使用maven就不能使用它。 关于maven的好处是,它需要照顾所有的依赖关系,所以你不必这样做。 另一方面,如果你想要做的唯一的事情是原型几页比Wicket可以矫枉过正。 但是,如果您的应用程序增长,最终,Wicket的好处将继续显示每个添加的表单,链接或页面:)
尝试Apache Click
这就像Wicket,但更有效率和易于学习。
使用maven原型可以非常快地安装Tapestry 5。 请参阅Tapestry 5教程: http : //tapestry.apache.org/tapestry5/tutorial1/
IMO的正确答案取决于两件事情:1.您要编写的Web应用程序的目的是什么? 你只是告诉我们,你想写得很快,但不是你实际上想要做的。 例如。 它需要一个数据库吗? 它是某种商业应用程序(提示:也许search“脚手架”)? ..或游戏? ..或者你只是试着用sthg? 2.你现在最熟悉的框架是什么? 常常需要花费大量的时间阅读文档,弄清楚事情是如何工作的。 如果你想快速完成,坚持你已经熟悉的事情。
在经历了很多与Struts,Tapestry 3/4,JSF,JBoss Seam,GWT的痛苦经历之后,我会坚持使用Wicket。 Eclipse的Wicket Bench很方便但不是100%完成,但仍然有用。 用于部署到Tomcat的MyEclipse插件是ace。 没有Maven只需部署一次,更改将自动复制到Tomcat。 魔法。
我的build议:Wicket 1.4,MyEclipse,Subclipse,Wicket Bench,Tomcat 6.安装需要一个小时左右的时间,但是其中大部分将会下载tomcat和Eclipse插件。
提示:不要使用Wicket Bench库,手动安装Wicket 1.4库到项目中。
这个网站花了我约2小时写http://ratearear.co.uk – 不要去那里工作! 而这一个是约3天的工作http://tnwdb.com
祝你好运。 蒂姆
web4j工具本身简单易用。 关于它的一些观点:
- 使用单个XML文件(所有servlet所需的web.xml文件)
- 不依赖于Maven(或任何其他第三方工具/ jar)
- 全栈,开源(BSD)
- 任何完整的堆栈java框架的最小数量的类
- SQL放在纯文本文件中
- 鼓励使用不可变的对象
- 所需的最小工具集(JSP / JSTL,Java,SQL)
如果你喜欢轻松地完成CRUD并创build一个快速的原型应用程序,那么Grails就是要走的路。 在http://grails.org/Tutorials上点击“构build您的第一个Grails应用程序”教程,您可以在一个小时内启动并运行您自己的应用程序。;
你可以试试JRapid 。 使用域驱动devise,您可以定义您的应用程序,并为您的Web应用程序生成完整的堆栈。 它使用已知的开源框架,并生成一个非常好的,可以随时使用的用户界面。
我没有使用它的AppFuse旨在促进Java Web开发带来的讨厌的设置。
尝试Wavemaker http://wavemaker.com免费,易于使用。; 使用WaveMaker构build精美Java应用程序的学习曲线仅需几周!
试试Vaadin! 非常简单,你也可以轻松的使用UI! http://www.vaadin.com
另外看看activeweb 。 它简单,轻量,并利用了我喜欢的其他一些东西(guice,maven …)。 它的控制器可以提供任何你想要的东西,包括json,Html,纯文本,PDF,图像…你可以使宁静的控制器,甚至使用注释来确定控制器方法接受哪些http方法(POST,GET,…)。
我会认为坚持使用JSP,servlet和JSTL在与我合作过的几家公司中处理了12年以上的Web框架之后,我总是发现自己回到了好的JSP。 是的,有些事情你需要自己写一些框架自动完成。 但是,如果你正确地使用它,并且在你的servlet之上构build一些基本的utils,它将提供最好的灵活性,并且你可以轻松地做你想做的事情。 在任何框架中我都没有find真正的优势。 我一直在寻找。
看上面所有的答案也意味着没有一个真正的框架是好的和规则的。
你尝试过DWR吗? http://directwebremoting.org
最近我发现AribaWeb框架看起来很有希望。 它提供了很好的function(甚至AJAX),很好的文档。 用Groovy / Java编写,甚至包括一个Tomcat-Server。 试图进入spring真的让我发疯。