【问题标题】:Java web framework for someone new to web programming in Java?Java Web 框架适用于 Java Web 编程新手?
【发布时间】:2013-01-31 23:25:25
【问题描述】:

我通常用 PHP 编写我的网站,但我希望转向 Java。为此,我正在寻找一个适合新手的 Java 框架,具有最少的配置和易于部署,以及 MVC 方法,并且可以轻松完成 AJAX。可以让我快速搭建一个网站的东西。

我看过的大多数框架看起来都非常复杂和臃肿。我似乎需要学习十几个注释和配置才能开始工作,还有十亿个术语(IoC、AOP、Beans 等)。播放似乎更好,但似乎需要一些额外的工作才能在服务器上部署/运行。 (我想部署到亚马逊)。

我正在考虑跳过一个框架,并自己使用 servlet 自定义编码。但我认为这种方法会有很多安全问题。

我最好的选择是什么?

【问题讨论】:

  • 是什么让您认为存在安全问题?
  • @spiritwalker 只是猜测。没有?
  • 总是有安全问题!

标签: java spring hibernate frameworks playframework


【解决方案1】:

我从 PHP 切换到 Play Framework 1.2.x 并且从未回头(很少回头)。与我使用 PHP、所有库、类型安全、休眠等相比,我实际上非常喜欢 Java。

这也迫使我在纯面向对象编程方面变得更好。 Play 消除了 Java 中的大部分问题,让构建非 ajaxy 网络项目变得容易。

我经常使用 ajax,发现 Play 有点笨拙,但它仍然工作得很好,如果我投入时间,有很多插件声称可以让它变得更容易。

我对 Play 的主要抱怨是模板(视图)有时使用起来很痛苦,而在 2.x 中从 Groovy 切换到 Scala 时解决了这个问题。但是我必须为 2.x 学习很多新语法,而我没有那种心情,所以我仍然在 1.2.x 中进行生产项目。

总而言之,在你的名单上最好的,我会选择 Play 而不是其他的,然后选择 1.2.x。未来在 2.x 中,但我认为通过转到 1.2.x 可以更好地简化从 PHP 到 JVM 语言的过渡。如果您有时间,请使用 2.x。我非常期待类型安全的模板,但还不想对所有其他更改大惊小怪。

至于托管,我在传统 VPS 上运行。我真的不关心 AWS。我发现运行生产服务器就可以在没有太多系统管理员知识的情况下进行管理。如果你想走这条路,其他人提到了那些在 AWS 之上施展魔法的人。

【讨论】:

    【解决方案2】:

    试试 Spring MVC

    http://static.springsource.org/docs/Spring-MVC-step-by-step/

    Struts 2 将是下一个选择。

    对于一般的 AJAX 或 javascript,使用 JQuery

    【讨论】:

    • 其实 Spring 是我尝试过的,但是我需要学习十亿个注解/配置/术语。
    • 没错,但他们的教程是最好的,而且 Spring 强迫你从一开始就写出好的代码
    • 有很多东西要学,因为 Spring 不仅仅是 MVC。但是无论你使用什么 MVC 框架,学习 Spring 都有很多价值。当我说春天改变了我的职业生涯时,我不认为我夸大了它。它支持几乎无缝地返回不同类型的数据(例如 JSON)。但是,是的,要学习的东西很多。去年我一直在学习它。
    【解决方案3】:

    如果您是 Java 用户,请尝试 Play 1.2.x。 Play 2.x 很棒,但 Play 1.x 的核心是 Java,你不需要学习任何新工具(看看你的 SBT)。您确实需要遵循本教程,因为它的运行方式与常规 java 库有点不同(它监视路径的更改并动态重新编译代码/类)

    另一个让我印象深刻的框架是 Errai:http://www.jboss.org/errai,值得一试。

    另外,如果您想轻松部署,请尝试 Heroku(它实际上在 Amazon 上运行)。部署起来真的很轻松——只需将代码提交到 Heroku git repo 就可以了。如果你害怕 git,他们甚至有 Eclipse 3.7(不是 4.x)的 Eclipse 插件。

    【讨论】:

    • 加 1 用于播放 1.x。我用过 Apache Turbine、Apache Struts、CakePHP、Spring,而 Play 1.x 是迄今为止我心目中最简单、最优雅的一个
    • 非常感谢您提供的信息。使用 Heroku,我无法清楚知道它何时会停止免费?它只是部署还是实际托管应用程序?数据库是托管在 Heroku 上还是我自己的服务器上?
    • 如果您运行的是单个“dyno”(如机器),heroku 是免费的。如果您想扩大规模(因为您有大量客户),那么您需要付费。其他值得注意的托管选项:appfog、cloudbees、openshift 都有免费计划(使用不同的字符串)
    • 我需要使用现有的亚马逊豆茎,所以我认为这排除了 Heroku。从 play 导出的 .wars 似乎也不适用于 beanstalk。那么在玩完之后,下一个最佳选择是什么?
    • 不知道 - 它在这里列出:playframework.org/documentation/1.2.5/deployment - 但我不使用它。您是否计划需要真正快速扩展?您预计有多少用户?
    【解决方案4】:

    我会推荐 JSF。那里有很多反对者,但 JSF 相当可靠,它的许多缺点最终都在 JSF2 中得到解决。另外,成熟的组件有很多选择:

    • RichFaces
    • PrimeFaces
    • ICEFaces(不推荐)

    等等

    考虑它的另一个原因是因为它现在是标准的一部分:Java EE 6 将它拉到了保护伞下。我以前用过很多次并且非常满意的 RichFaces 东西。您可以非常快速地制作高性能、面向增量更新的页面,而且您最终不会编写 Javascript 或将代码放入页面中。

    最后,RichFaces 的人有一个项目可以与 Twitter Bootstrap 集成,看起来很有趣...

    【讨论】:

      【解决方案5】:

      试试微。 Micro 是一个非常新的基于 MVC 的 Web 开发 Java 框架。它是开源的,在 Apache 2 许可下获得许可。您可以在此处查看文档:http://micro-docs.simplegames.ca/(正在进行中)或其在 Github 上的源代码:

      让我知道你的想法。

      【讨论】:

        【解决方案6】:

        阿帕奇检票口

        • 如果你知道 Java
        • 如果您想构建基于组件的 Web 应用程序
        • 如果您希望能够在单元测试中测试您的所有组件
        • 如果您想拥有一个安全的应用程序
        • 如果您想找到一个很棒的社区
        • 如果你想玩得开心

        然后,看看 Apache Wicket http://wicket.apache.org

        什么是 Apache Wicket? Wicket 是一个面向组件的 Java Web 框架,拥有一个很棒的社区。​​p>

        来自http://wicket.apache.org/meet/introduction.html

        简单(简单/一致/明显)

        • 以 POJO 为中心 所有代码用 Java 编写
        • 最小化“概念表面积”
        • 避免过度使用 XML 配置文件
        • 彻底解决后退键问题
        • 轻松创建可添加书签的页面
        • 最大类型安全和编译时问题诊断
        • 最大限度地诊断运行时问题
        • 对特殊工具的依赖最少
        • 组件、容器和约定应保持一致

        可重复使用

        • 用 Wicket 编写的组件应该是完全可重用的
        • 可重用组件应该很容易分布在普通 JAR 中 文件

        非侵入式

        • HTML 或其他未被编程语义污染的标记
        • 标记中只有一个简单的标记结构
        • 兼容任何普通的 HTML 编辑器
        • 图形设计人员易于识别和避免框架标记
        • 如果设计人员不小心删除了标签,很容易将标签添加回 HTML

        安全

        • 默认情况下代码是安全的
        • 只有显式可添加书签的链接才能显示页面中的状态或 网址
        • Java 中的所有逻辑都具有最大的类型安全性
        • 易于与 Java 安全性集成

        高效/可扩展

        • 高效且轻量级,但不以牺牲其他目标为代价
        • 首选通过粘性会话进行聚类
        • 通过会话复制进行集群很容易完成,也很容易 通过使用可拆卸模型进行调整。

        完成 Wicket 团队致力于为开发 Java Web 应用程序提供一个功能完整、即用型的框架。核心框架由本文作者 Jonathan Locke 编写和贡献。目前的团队由一群经验丰富的程序员组成,其中一些人活跃于上述其他一些框架,并且都拥有构建大型 Java Web 应用程序的丰富经验。我们吃自己的狗粮,因此将从框架用户的角度来处理 Wicket。

        阿帕奇检票口:http://wicket.apache.org

        弗朗索瓦

        【讨论】:

          【解决方案7】:

          jsf 带弹簧

          我认为这是最好的选择............

          面部导航和面部 bean 使用 jsf,服务和数据源使用 spring ....

          ...

          对于 jsf,有很多面孔可用.. 有钱人

          素面 开放面 万能的

          我的脸

          【讨论】:

            【解决方案8】:

            任何不了解 Java Web 的明智人都会了解 Java EE 的含义,但坦率地说,所有这些都从两个重要的基础系统运行,

            1. "JSP" 及其 JSP-scripting 及其 Java EE Servlets(例如 Servlets 1.2 级别,不回溯到标准输入流) ) 和 JSP “标签” 称为 JSP “指令”。

            JSP 指令(大致称为“JSP 标签”)不要与“JSP 自定义标签”(一个框架) 混淆。

            1. JSP 本身是一个框架,它的引擎是一个“Servlet”“自定义标签”是第一个免费的 JSP 基础框架,有了这个,JSP 本身就是另一个不可阻挡的框架,它是所有 Java 中最重要的之一 称为“Beans”

            【讨论】:

              【解决方案9】:

              我正在寻找一个适合新手的 Java 框架,它具有最少的 配置和易于部署,以及 MVC 方法,以及 AJAX 很容易做到。

              你所描述的是存在的。它的名字叫HybridJava。

              【讨论】:

                猜你喜欢
                • 2011-09-15
                • 2010-11-29
                • 1970-01-01
                • 2013-04-06
                • 2014-05-12
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多