Java 构建端到端web应用程序所需的技术?

Java 构建端到端web应用程序所需的技术?,java,architecture,ria,tapestry,Java,Architecture,Ria,Tapestry,我想开发一个web应用程序,比如在线调度器。(是的,我知道已经做了一百万次了。) 我的大部分经验都是Java,所以在考虑技术时,我想利用这一点 我主要是一名系统开发人员,很少接触UI编程,因此我认为这是我需要学习的大部分内容 你对我应该关注的技术有什么建议吗?我想把重点放在可销售且易于学习的技术上 到目前为止,我认为我需要一个三层体系结构(从头开始): 数据库(可能是MySQL或PostgreSQL)-SQL、JDBC 后端服务器-Java Web服务器(Tomcat)-JSP,servlet

我想开发一个web应用程序,比如在线调度器。(是的,我知道已经做了一百万次了。) 我的大部分经验都是Java,所以在考虑技术时,我想利用这一点

我主要是一名系统开发人员,很少接触UI编程,因此我认为这是我需要学习的大部分内容

你对我应该关注的技术有什么建议吗?我想把重点放在可销售且易于学习的技术上

到目前为止,我认为我需要一个三层体系结构(从头开始):

  • 数据库(可能是MySQL或PostgreSQL)-SQL、JDBC
  • 后端服务器-Java
  • Web服务器(Tomcat)-JSP,servlet
  • Web框架-Tapestry(在这方面较弱,有更好的替代方案吗?)
  • 浏览器技术-HTML、Javascript、CSS(需要学习)
我听说过Flex和Silverlight等“富互联网应用程序”开发工具,但我不确定这类技术的市场前景


编辑:似乎有很多人提到了Spring/Hibernate,所以我将对此进行研究。我很感谢您的反馈。

我认为您的基础做得很好

您可能希望研究一些框架/库,以使其更容易使用

Web框架-Wicket/Stripes/JSF/Tapestry(组件与基于请求的框架)

Javascript库-JQuery/YUI/Dojo

至于模板语言,您可以使用JSP/Velocity/Freemarker

只需研究一下框架和工具,也许可以尝试一些,看看哪些最适合你

仅供参考,我目前正在使用

  • Apache-web服务器
  • Tomcat-servlet容器
  • MySQL数据库
  • 基于请求的web框架
  • YUI-for ajax
  • Spring依赖注入
  • Hibernate-对象关系映射
  • jsp-动态生成html
我个人会将其添加到此列表中。依赖注入无疑是一项值得学习的伟大技术,根据我的经验,Spring可以让您随心所欲地使用它

您没有明确提到单元测试,但这肯定是混合测试的一部分-我在实际测试框架之外没有太多经验,但还有和(以及其他)用于模拟依赖项


这些都不是特定于web的,但对我来说仍然很重要:)

如果您使用Java后端,我建议您使用JPA、JSF和(AJAX/蒙皮)以及(视图渲染/模板)作为前端,并将它们放在一起。这是一个很好的组合。

如果您使用Spring,那么您可以使用Hibernate访问mysql,您可以在那里获得所需的一切

在编写之后,您希望开始改进它,然后可能开始考虑在浏览器方面做更多的工作,但是,最初,您可能希望它不需要ajax调用


Spring框架文档可能会有所帮助,因为Spring有许多部分可以使用,如Spring MVC、Spring Framework、Spring Webflow和Spring Security,如果需要的话。

我不同意富Internet应用程序没有市场。实际上,作为RIA开发的企业级应用程序的趋势越来越大。RIA与普通web应用程序相比的优势在于可用性。您获得了web应用程序的所有优点,但仍然能够保持类似桌面的用户界面

您说您来自Java背景,对web技术没有太多经验。好吧,我不得不说,你听起来真的像是一个理想的用户候选人或(基于GWT)。这两个框架都允许您纯粹用Java创建富internet应用程序!不需要HTML或JavaScript技能。你必须学习CSS来为应用程序创建自己的主题

这两个框架都是开源的,并且非常适合商业使用。IT Mill Toolkit与GWT的区别在于它是服务器驱动的,这意味着业务逻辑是在服务器上实现和运行的,而不是在客户端浏览器中作为JavaScript(GWT就是这样)。从软件安全的角度来看,这种服务器驱动的体系结构使应用程序更加安全。与IT Mill Toolkit相比,GWT的优势在于拥有更大的用户群体

关于ORM框架,Hibernate非常流行。但是,我不太喜欢它,因为即使它在技术上实现了Java持久化API,但它的行为并不总是如预期的那样,而且您必须使用大量特定于hibernate的注释,这会使您的应用程序很难进入hibernate(糟糕的事情!),并且如果您愿意,您不能轻松切换到另一个JPA提供商。实现JPA的另一个ORM框架是。我个人还没有在企业级应用程序中使用EclipseLink(因为我还没有机会),但我正在一个较小的项目中使用它,它看起来相当不错。EclipseLink是开源的,它的lisencing对商业用途很友好。EclipseLink是Oracle不断开发的,因此它的背景非常坚实。它实际上基于TopLink,这是Oracle的封闭源代码JPA实现


希望这有帮助:)

不久前问了基本相同的问题,并给出了一些非常有用的答案:


很好,我忘记了春天,它绝对适合搭配!