gpt4 book ai didi

java - 如何构建 Java Web 应用程序

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:06 25 4
gpt4 key购买 nike

很快我将不得不为一家公司启动一个网络项目,我现在需要选择一种技术来构建应用程序。我正在考虑使用 Java,因此我想找到一个可以帮助我构建应用程序的框架(我习惯了 CakePHP 和 CodeIgniter 等 PHP 框架)。

我不明白的是,似乎存在许多目标不同的框架和技术。 Action 框架、组件框架……我可以用一个框架做什么而另一个框架不能做什么?似乎应该通过混合许多不同的技术来开发 Java Web 应用程序,因此我有点迷路了......我看过不同的 java 框架,例如 JSF、Stripes、Struts2、Tapestry、Wicket 和 Spring。关于后者,我不太清楚这个框架有哪些不同的部分,它能为我做什么,不能做什么。我可以从 Spring 中获取什么,不需要什么...

因此:构建 Java Web 应用程序需要什么?

我已经将 JSF 用于基本的 CRUD 应用程序,但我正在尝试寻找可能更适合我需要的东西。我们必须构建的应用程序将既是一个社区平台又是一个商业网站,具有要保护的敏感数据:)

关于 ORM,我想我会选择 Hibernate ...我还听说过 Maven 或 Ant,它们能以什么方式帮助我?

任何建议/指南将不胜感激:-)提前致谢。

编辑:我需要的是:一个 java 框架:

  • 有据可查/容易获得帮助/尽可能简单...
  • java越多越好
  • Ajax 友好/可以构建漂亮的 UI ...
  • 国际化
  • 仍然是一名学生,技能的适销性可能很重要......

要构建的应用既是

  • 社区网站:web 2.0、CRUD
  • 电子商务网站

完整规范尚未完成。

最佳答案

这是一个很难回答的问题,最近我遇到过你的情况,我会尝试提供一些见解。基本上,对于 Java,有大量的框架可供选择,没有人能真正告诉您哪一个最适合您,我们可以做的是为您提供一些技术的分割。

以下是我在寻找您想要的相同答案时遇到的问题。

Java 拥有大量试图提供全栈解决方案的技术。这些技术可以分解为其他技术,但当您将它们结合使用时效果会很好。

Web 应用程序基本上分为 3 层,表示层、业务层和数据层。表示层是前端,用户看到的。您通常可以混合和匹配这三个层的技术。例如,您可以使用带 Spring 框架的 strip 前端作为 IOC 和 Hibernate 作为 ORM。

有许多很棒的技术可用于表示层,其中包括 Spring-MVC、STRUTS、Stripes、Wicket、JSF/SEAM 和 Tapestry。其中大多数使用 JSP 作为 View 使用 JSTL,wicket 除外,它实际上通过使用 Java“组件”(POJOS) 将 html 与逻辑完全分离。两种方法各有利弊。 wicket 方法的好处是您拥有静态类型检查和 html 的完全分离,因此您可以将其交给您的设计师。

对于业务层,人们通常使用某种控制反转框架 (IOC) 来进行依赖注入(inject) (DI)。 IOC 的流行框架是 Spring 和 Seam,它们具有 Spring-security 等相关技术,并且通常得到其他技术的支持。 Google Guice 似乎作为直接 DI 框架很受欢迎。

最后,对于数据层,大多数人倾向于使用 Hibernate 或 JPA。还有其他的,但我没有使用它们的经验,无法提供更多信息。

Tapestry 是另一个框架,根据我的理解,它试图成为一个完整的堆栈,并采用类似 wicket 的方法(或者我猜 Wicket 采用类似 tapestry 的方法)。 Grails 是另一个使用 Groovy 并构建在 Spring 和 Hibernate 之上的全栈框架。如果您喜欢 Rails,Grails 非常不错。

这些技术中的大多数都有大量可用信息和非常活跃的邮件列表/IRC 聊天室。您需要做的是查看它们,然后决定哪种方法适合您。这里没有人能够告诉您您会喜欢什么。

如果您需要推荐,我想有一天使用 Wicket/Guice/Hibernate 堆栈。

关于java - 如何构建 Java Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/872153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com