我正在寻求使用Java开始为Web开发 - 我有一些基本的Java知识,所以这不是问题,但在解密用于Web应用程序的各种技术时我很茫然.
我有哪些选择?他们是如何工作的?有没有类似于Django/Ruby on Rails的框架,我可以使用它来简化事情?
任何有助于理解可用内容的链接都将非常受欢迎.
Java框架有两种基本风格.一个称为"行动"框架,另一个称为"组件"框架.
Action框架专注于将HTTP请求映射到Java代码(操作),以及将HTTP请求绑定到Java对象.Servlet是Action Frameworks中最基本的,并且是构建所有其他框架的基础.
Struts是最受欢迎的Action框架,但我不能凭良心向任何人推荐它.Struts 2和Stripes更加现代,彼此非常相似.两者都配置简单,开箱即用,提供非常好的绑定功能.
组件框架专注于UI,并倾向于基于高级UI组件(按钮,列表框等)推广更多事件驱动的架构.框架倾向于在几个层下隐藏来自编码器的实际HTTP请求.他们使开发更高级的UI变得更加容易..NET是Windows的组件框架.在Java上,流行的组件框架是JSF(标准)和Wicket.
通常,如果您正在创建"网站".这更类似于呈现信息(如博客或社区网站),Action框架更有效.这些网站往往更简单,经常收藏,需要"漂亮的URL"等.这通常更容易使用Action框架.
对于具有大量UI元素和复杂工作流的后台应用程序,组件框架要好得多.您会发现,特别是使用工具,这些样式的应用程序将使用组件框架更快地结合在一起.但是组件框架具有更复杂的请求工作流,有时依赖于隐藏状态,大量POST操作等.许多具有"可怕"URL,并且有时创建难以书签的页面.
两个框架都可以用于这两个任务,只有一些框架比其他框架更适合任务.
这些框架都没有直接解决持久性问题,但许多框架都有扩展模块或习惯用法与JPA/EJB3或Hibernate紧密配合.
您的基本Java Web技术是servlet.Servlet允许您编写响应各种HTTP事件(doGet,doPost,doPut等)的Java代码.它们通常用于MVC架构中的控制器.链接:http://java.sun.com/products/servlet/
JSP允许您使用嵌入式Java编写HTML而不是相反(在servlet中).JSP已经通过JSF扩展,以包含更新的架构进步.这与PHP和ASP在同一行.这是MVC架构的视图部分.链接:http://java.sun.com/developer/technicalArticles/GUI/JavaServerFaces/
许多更复杂的应用程序利用Enterprise Java Bean(EJB)进行会话管理,群集等.这本身并不是一种Web技术,但是在处理更复杂的Web应用程序时,您会发现它是相辅相成的.替代方案包括Spring等框架.EJB:http://docs.jboss.org/ejb3/app-server/tutorial/ Spring:http://www.springframework.org/
此外,您还需要熟悉ORM技术(在servlet和JSP/JSF之后).领先的ORM框架目前是Hibernate.这使您可以将SQL表映射到java对象并相应地与它们进行交互.这是更高级的东西,所以当你试图了解EJB/Spring等时保存它.链接:http://www.hibernate.org/
编辑:我忘了定义ORM.它代表对象关系映射/映射器(无论你想使用什么版本的"地图":)
从Java类中的逻辑支持的JSP开始.或者使用servlet.
使用JSP和Servlet的优势在于,您可以了解所有框架的内容.这种理解对于弄清楚如何在特定框架中执行X至关重要.
此外,JSP非常简单.您可以轻松地看到自己在做什么,并且在使用业务逻辑搞乱视图时非常容易看到它.
而且很多框架(Struts,Spring MVC)都使用JSP作为他们的视图技术.这是使用Java进行Web开发的自然的第一步.
我不知道有没有像Django for Java那样好的东西,但Spring有一个基于J2EE的轻量级Web框架
http://www.springframework.org/about
灵活的MVC Web应用程序框架,构建于Spring核心功能之上.该框架可通过策略接口进行高度配置,并适用于JSP,Velocity,Tiles,iText和POI等多种视图技术.请注意,Spring中间层可以轻松地与基于任何其他Web MVC框架(如Struts,WebWork或Tapestry)的Web层相结合.