我应该选择哪个Web框架?

时间:2011-02-24 03:11:13

标签: web-applications

我是一名java开发人员。我想自己开发一个网站。我想选择一个快速的Web应用程序框架。我有一些春季mvc的经验。现在我想知道我是否应该选择另一个Web框架。这是我想要的清单:

  1. 快速发展
  2. 易于保护
  3. 易于验证
  4. 易于与DB通信(mysql或 的NoSql)
  5. 我听说过ruby,python,groovy和scala。我应该将这些包含在我的选择中吗?这需要多少额外的努力?我应该把时间花在这些上还是留在Java世界?请给我一些建议。

    非常感谢。

5 个答案:

答案 0 :(得分:3)

如果你愿意考虑Python(听起来像你),你应该看看web2py

  1. 它的主要目标是ease of use, rapid development, and security
  2. 有关安全性herehere
  3. 的更多信息
  4. 如果通过“易于验证”表示输入/表单验证,则表示forms and validation system很好。
  5. 为了方便和便携的数据库通信,它有database abstraction layer,可与SQLite,PostgreSQL,MySQL,Oracle,MSSQL,FireBird,DB2,Informix,Ingres和Google App Engine(即BigTable)一起使用,如以及对CouchDB的部分支持。
  6. 设置并尝试它非常容易 - 只需download,解压缩并运行它。它不需要安装或配置,没有依赖性(二进制分发甚至包括它自己的Python解释器),并且包括一个支持SSL的Web服务器,一个关系数据库,一个脚手架应用程序,以及一个基于Web的IDE /管理界面。错误记录和票务系统。它是一个集成良好的全栈框架,具有许多功能,包括缓存,会话管理,国际化,身份验证和基于角色的访问控制,Web服务,Ajax等。

    我对Spring MVC并不太熟悉,但我认为你会发现web2py不那么冗长。例如,请参阅this Spring MVC tutorial - 下面是web2py中的等效代码(实际上,web2py代码添加了字段验证,JS日期选择器和图像上传):

    from gluon.tools import Crud
    db=DAL('sqlite://storage.sqlite')
    crud=Crud(globals(), db)
    
    db.define_table('person',
        Field('name', required=true'),
        Field('birthdate', 'datetime'),
        Field('address', 'text'),
        Field('image', 'upload'))
    
    def index():
         db.person.id.represent=lambda id: A('view', _href=URL('show', args=id))
         return dict(people=db(db.person).select(),
                     new=A('new contact', _href=URL('edit')))
    def edit():
         row=db.person(request.args(0))
         return dict(form=crud.update(db.person, row, next='show/[id]')
    
    def show():
         row=db.person(request.args(0)) or redirect(URL('index'))
         return dict(form=crud.read(db.person, row),
                     link=A('edit', _href=URL('edit', args=row.id)))
    

答案 1 :(得分:2)

Grails。它符合您的经验,并将自己作为快速开发框架。它使用您熟悉的技术(Spring,Hibernate)。 Grails代码是用groovy编写的,Java开发人员可以毫不费力地开始使用它。如果遇到麻烦,你可以回到java。 Grails有一组丰富的插件可以处理非常常见的项目,例如身份验证,排队等。当部署应用程序时,您可以部署战争/耳朵。简而言之,Grails符合您的所有标准。

1)Grails减少了配置 - 它由'约定优于配置'驱动,因此如果您遵循约定,代码将由框架绑定在一起。
2)有许多安全插件,其中一个基于弹簧安全性 3)我不知道你的意思,但如果你的意思是我认为你的意思,你可以在你的模型对象上设置约束来验证数据。此外,grails还有一个单元/集成测试机器 4)Grails域对象默认映射到数据库表。 Grails在封面下使用休眠。您可以在域类中自定义数据库模式 - 如果您熟悉hibernate,那么您将会很好。

基本上,您可以在一个框架中获得经过验证的Java技术的所有好处,使您可以更快地加快速度。

答案 2 :(得分:0)

如果您正在进行Web开发,那么您很可能知道JavaScript。因此,如果您对新框架持开放态度,可以查看Node Express。它的简单性很难超越:

var app = express.createServer();

app.get('/', function (req, res) {
    res.send('Hello World');
});

app.listen(3000);

...并且您在端口3000上有一个Web服务器,向访问者说“Hello World”。

Express是Node.js的Web开发框架。您使用JavaScript编写,并且不需要任何Web服务器(如Apache或其他任何东西) - Node 是一个Web服务器。

答案 3 :(得分:0)

如果您同时喜欢语言学习体验,可以试试Scala Lift。 Scala是一种可在Java JVM上运行的可伸缩语言。 Lift是一个非常容易编写代码的框架,只需很少的工作就可以为您提供很多功能。

如果你有空的话,值得一看。

答案 4 :(得分:0)

同样引用python,flask是模块化的,你可以根据需要开始基本和添加扩展。 http://flask.pocoo.org/

希望这有帮助!