谁能推荐一个简单的Java Web应用程序框架?

时间:2020-03-06 14:33:34  来源:igfitidea点击:

我正在尝试着用Java开发一个相对较快的Web应用程序,但是我尝试过的大多数框架(Apache Wicket,Liftweb)都需要大量的设置,配置和尝试,在使整个过程与Eclipse融为一体的同时,全神贯注于Maven,以至于整个周末我都只是试图写出第一行代码!

谁能推荐一个简单的Java Webapp框架,它不涉及Maven,可怕的复杂目录结构或者必须手动编辑的无数XML文件?

解决方案

我喜欢编写普通的旧servlets + winstone servlet容器。从那里开始,我需要模板(速度,XSLT等)和数据库访问(休眠,扭矩等)库,因为我需要它们,而不是使用实际的框架。

我们正在搜寻http://grails.org/

我们可以使用groovy(一种基于Java的动态语言)对其进行编码,并与Java代码,类和库一起平稳运行。语法既不难学习,也离Java不远。试试看,这是几分钟的时间,它可以启动并运行一个网站。只需遵循http://grails.org/Installation和http://grails.org/Quick+Start

加的特Greetz

AppFuse并没有使用它,它旨在促进Java Web Development附带的令人讨厌的设置。

我们尝试过DWR吗? http://directwebremoting.org

Grails是为Groovy而不是Java编写的。 AppFuse仅减少启动任何数量的Webapp框架所需的设置时间,而不是推广其中任何一个。

我建议使用Spring MVC。遵循精心编写的教程之后,我们将拥有一个简单易用的模型,该模型可以自动连接(无需XML配置!)到我们喜欢的任何视图技术中。

想要将"删除"操作添加到客户列表中吗?只需在客户控制器中添加一个名为" delete"的方法,该方法将自动连接到URL / customers / delete。

是否需要将请求参数绑定到对象上?只需将目标对象的实例添加到方法中,Spring MVC将使用反射来绑定参数,从而使编写逻辑就像客户端通过一个强类型对象开始一样容易。

厌倦了所有强制的MVC分工吗?只需让方法返回void,然后将响应直接写到Servlet的Writer(如果我们需要的话)即可。

我喜欢Spring MVC,使用2.5功能很少涉及XML。

查看WaveMaker,以构建一个快速,简单的Web应用程序。他们有一个基于浏览器的拖放设计器,用于Dojo / JavaScript小部件,后端是100%Java。

Stripes框架是一个出色的框架。涉及的唯一配置是在web.xml中粘贴几行。

这是一个非常直接的基于请求的Java Web框架。

我真的很喜欢条纹。整个安装过程将一些剪切和粘贴的XML包含到应用程序的web.xml中,然后我们就可以退出了。不需要配置,因为Stripes是约定之上的配置框架。覆盖默认行为是通过Java 1.5注释完成的。文档很棒。我花了大约1-2个小时阅读教程并设置了我的第一个应用程序。

我还无法与Struts或者Spring-MVC进行深入比较,因为我尚未在其中建立完整的比例(就像我在Struts中一样),但是看起来它可以扩展到该水平。建筑相当不错。

条纹:很好。一本实用的程序员写的一本书:http://www.pragprog.com/titles/fdstr/stripes。没有XML。需要Java 1.5或者更高版本。

Tapestry:尝试了旧版本3.x。有人告诉我,当前的5.x版本是Beta版,相当不错。

从照顾Maven,不使用xml以及快速整理头脑的角度来看,条纹应该更好。

BR
〜A

(已针对Spring 3.0更新)

我也使用Spring MVC。

我们需要从这里下载Spring

要配置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>

然后,我们需要创建Spring配置文件/ 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可以做的事情的冰山一角...

希望这可以帮助。

使用Maven原型可以非常快速地设置Tapestry 5. 请参阅Tapestry 5教程:
http://tapestry.apache.org/tapestry5/tutorial1/

我真的不知道让maven + eclipse起作用有什么大不了的事,只要我们不必对pom.xml进行太多更改即可:)

用户maven的大多数框架都具有可以生成存根项目的maven原型。

因此,基本上,这些步骤应该是:

  • 安装Maven
  • 将M2_REPO类路径变量添加到eclipse
  • 生成具有原型的项目
  • 导入项目到日食

至于Wicket,没有理由没有maven就无法使用它。关于maven的好处是它可以处理所有依赖关系,因此我们不必这样做。另一方面,如果我们唯一想做的是对几页原型进行原型制作,那么Wicket可能会显得过大。但是,如果应用程序最终增长,Wicket的优势将随着添加的每个表单,链接或者页面而不断显示:)

IMO的正确答案取决于两件事:
1.我们要编写的Web应用程序的目的是什么?
我们只是告诉我们我们想快速编写它,而不是我们实际上想做什么。例如。需要数据库吗?它是某种商业应用程序(提示:也许搜索"脚手架")? ..或者游戏? ..或者我们只是在尝试sthg?
2.我们现在最熟悉哪些框架?
通常需要花费大量时间的时间是阅读文档并弄清楚事物的工作方式(真正地)。如果我们希望快速完成,请坚持熟悉的事情。

在对Struts,Tapestry 3/4,JSF,JBoss Seam和GWT进行了许多痛苦的体验之后,我现在将继续使用Wicket。 Wicket Bench for Eclipse很方便,但并非100%完整,尽管仍然有用。用于部署到Tomcat的MyEclipse插件是ace。没有Maven只需部署一次,更改就会自动复制到Tomcat。魔法。

我的建议是:Wicket 1.4,MyEclipse,Subclipse,Wicket Bench和Tomcat6. 设置将花费一个小时左右的时间,但其中大多数将下载tomcat和Eclipse插件。

提示:不要使用Wicket Bench库,将Wicket 1.4库手动安装到项目中。

这个网站花了我大约2个小时来写http://ratearear.co.uk不要下班!!而这一工作大约需要三天时间http://tnwdb.com

祝你好运。提姆

Apache Wicket, Liftweb) require so much set-up, configuration

我不同意,我将Wicket用于我的所有项目,并且从未回头!
设置不需要花很多时间,甚至不需要一个小时就可以建立一个完整的环境来使用Wicket。

我自己还没有尝试过,但我认为

http://www.playframework.org/

有很大的潜力...

来自php和classic asp,它是第一个对我来说很有前途的Java Web框架。

由原始问题提问者编辑2011-06-09

只是想提供一个更新。

我选择了Play,这正是我所要求的。它只需要很少的配置,并且开箱即用。这是不寻常的,因为它避开了一些常见的Java最佳实践,以使事情保持尽可能简单。

特别是,它大量使用了静态方法,甚至对传递给方法的变量名进行了自省,这是Java反射API不支持的。

Play的态度是,其首要目标是成为一个有用的Web框架,而遵循常见的Java最佳实践和习惯用法是其次要目标。这种方法对我来说很有意义,但是Java纯粹主义者可能不喜欢它,并且使用Apache Wicket会更好。

总而言之,如果我们想构建一个与Ruby on Rails之类的框架可比的便捷性和简单性的Web应用程序,但是要使用Java并利用Java工具(例如Eclipse)的好处,那么Play Framework是一个不错的选择。

Oracle ADF http://www.oracle.com/technology/products/jdev/index.html

web4j工具以简单易行的方式推销自己。关于它的一些要点:

  • 使用单个xml文件(所有servlet都需要的web.xml文件)
  • 不依赖于Maven(或者任何其他第3方工具/ jar)
  • 全栈,开源(BSD)
  • 任何全栈Java框架中最少的类数
  • 将SQL放在纯文本文件中
  • 鼓励使用不可变的对象
  • 所需的最少工具集(JSP / JSTL,Java,SQL)

如果我们想轻松地执行CRUD并创建一个快速的原型应用程序,并且与Eclipse配合很好,那么Grails是可行的方法。按照http://grails.org/Tutorials上的"构建第一个Grails应用程序"教程进行操作,我们可以在不到一个小时的时间内启动并运行自己的应用程序。

尝试Apache Click

就像Wicket一样,但效率更高且易于学习。

尝试Wavemaker http://wavemaker.com免费,易于使用。用WaveMaker构建美观的Java应用程序的学习过程仅需几周时间!

最近,我发现了AribaWeb框架,它看起来非常有前途。它提供了良好的功能(甚至AJAX)和良好的文档。用Groovy / Java编写,甚至包括Tomcat服务器。尝试进入Spring确实使我发疯。

我们可以尝试一下JRapid。使用域驱动设计,我们可以定义应用程序,并为Web应用程序生成完整的堆栈。它使用已知的开源框架,并生成一个非常漂亮且易于使用的UI。