2010-03-28 75 views
6

我有一些使用Java为Java项目编写Web应用程序的经验。我的第一个项目使用Servlets和我的第二个,Stripes框架。如何学习高级Java Web开发概念

但是,我觉得我错过了Java Web开发的更多图景。我不太了解web.xml和context.xml文件。我不确定什么构成了Java EE应用程序,而不是通用Java Web应用程序。我无法弄清楚bean是如何与普通的Java类(POJO?)不同的,以及它与Enterprise Java Bean(EJB)的区别。这些只是我能想到的前几个问题,但还有更多。

什么是了解Java Web应用程序如何从上而下运行而不是简单地如何开发具有特定框架的应用程序的好方法? (有没有关于这种事情的书?)最终,我想理解Java Web应用程序,以编写我自己的框架。

更新:为了清楚起见,我对学习如何使用特定框架(例如Spring或Java EE)没有兴趣。我正在寻找一个通用Java Web应用程序的内部解释。

回答

2

探索Java世界和连接的最佳方式的所有点的是只用框架之一,因为所有使用web.xml中的context.xml和Java EE组件(所有能坚持POJO的实体Bean) 。正如你已经知道了Stripes框架是,我推荐这本书(这是短期的处理所有你命名的方面):

Stripes: ...and Java Web Development Is Fun Again, 由弗雷德里克·达乌德, 务实程序员, ISBN:1934356212

更深入了解这些Java EE技术的更彻底方法是获得通过这两个Java认证考试所必需的所有知识:

Sun认证的Web组件开发人员(SCWCD)

Sun认证业务组​​件开发人员(SCBCD)

+0

有趣,谢谢。我刚刚在一家旧书店拿起那本17美元的书。我也有免费的学术机会参加这两门考试的Sun培训,所以我可以检查一下。 – titaniumdecoy 2010-03-31 19:54:50

5

我推荐Bates和Sierra推出Head First Servlets和JSP。有些人并不在意这种异想天开的风格,但它是Java EE的坚实介绍。 EJB没有被覆盖,但是一本书不能做任何事情。

+0

我更感兴趣的是比如何使用其中的一些可能存在的不同技术的概述。更具体地说,以及对由这些框架构建的基本Java Web应用程序(即WEB-INF,web.xml等)的理解。 – titaniumdecoy 2010-03-28 03:34:02

+0

那么,我明确了解部署描述符(web.xml)和WEB-INF的方式。 HF Servelts和JSP可能就是你想要的。或不。 – 2010-03-28 20:27:55

2

查看this question的回答。

此外,我使用Java构建web应用程序,而不使用传统的基于servlet的方法。我通常使用Restlet来构建RESTful Web应用程序,我使用嵌入式HTTP服务器作为独立Java应用程序运行。 This article详细介绍了使用嵌入式HTTP服务器而不是构建传统Java Web应用程序并将其部署到容器/应用程序服务器中的一些优点。如果您正在构建一个“常规”Web应用程序而不是RESTful应用程序(不是必需的,恕我直言),那么请查看Play,这是一个尖端的高级MVC Web框架,允许以更少的礼仪进行快速开发。

祝你好运!

0

具有讽刺意味的是,你想知道关于Java Web开发的所有原因与你在处理它时遇到很多麻烦的原因是一样的。为什么每个Java开发人员都想编写一个Web框架?

尽管如此,Java Web开发的历史非常悠久。从一开始,重量级和轻量级之间就存在争斗。这一切都是从EJB开始的,而且它们大部分都是吸引人的。所有这些都是struts的替代方案。那种吸也是。这一切都随着Spring的出现而带来了依赖注入的浪潮,然后JSF变得比以往更加复杂。最后,Rails出现了,并且围绕着Java所提供的所有东西运行。目前的Java框架作品展示了上一代的一些传统和战斗车,但它已经变得更好。通常情况下,配置较少,尝试更精简,依赖性和层次更少。

要直接回答您的问题,只需查看像tomcat这样的servlet容器和Glassfish或JBoss等完整的Java EE应用服务器之间的区别。它基本上归结为是否要使用EJB。如果你打算编写自己的框架,你不会。基本上,只要看看servlets/servlet容器是如何工作的。除此之外,请查看其他框架的源代码。

+0

我不想编写自己的Web框架,我只是想了解它们是如何编写的。 – titaniumdecoy 2010-03-28 05:57:38

3

我不太了解web.xml和context.xml文件。

web.xml文件仅仅是其指示下每个滤波器/ servlet来加载和实例化和其上的url图案那些应当被调用的应用程序服务器的配置文件。

context.xml只是另一个配置文件,它指示应用程序在每个web应用程序位于本地存储系统的位置以及它应该侦听哪个域/ URL上下文。

appserver在启动时解析这两个文件,并相应地采取相应的措施。

我不确定什么是Java EE应用程序而不是通用Java Web应用程序。

目前还不清楚是什么“Java EE应用程序”和“通用的Java Web应用程序”的自己定义。要回答这样的问题(即使你自己),你需要查找和/或重新定义定义。但总的来说,Java EE应用程序有两种:Web应用程序(通常部署在WAR的风格中)和企业应用程序(通常部署在EAR的风格中)。主要区别在于第二个涉及EJB,因此需要在支持EJB的应用程序上运行(例如Tomcat不)。

我无法弄清楚bean是如何与普通的Java类(POJO?)不同的,以及它与Enterprise Java Bean(EJB)有何不同。这些只是我能想到的前几个问题,但还有更多。

这些只是根据相关课程的目的(和历史)而被应用的术语。术语“POJO”是一个表示Javabean的(通常为负的)术语,它只是一个值对象(完全没有业务逻辑,只有getter/setter方法的纯bean),通常是一个模型对象,它是“传统”使用EJB/Hibernate的程序。一些人称之为VO(Value Object),另一些人称之为DTO(数据传输对象),另一些人则坚持使用“javabeans”。

什么是学习Java Web应用程序如何从上而下运行而不是简单地如何开发具有特定框架的应用程序的好方法? (有没有关于这种事情的书?)最终,我想理解Java Web应用程序,以编写我自己的框架。

Head First Servlets & JSP开始。阅读Servlet API并尝试自己实现一个。然而,HTTP的知识也是强制性的。阅读/调试/播放/破解现有开源Servlet API实现的源代码(例如Tomcat)。读取/调试/播放/破解现有开源(MVC)框架的源代码(例如JSF)。尝试了解他们如何工作,然后尝试做得更好。对于学习路径(“我需要什么技能?”)我在here之前发布了类似的答案。

0

如果您试图很好地掌握Java EE规范中的所有功能,以及您可能将哪些功能用于Web应用程序,我强烈建议您仔细阅读Java EE Tutorial。您可以跳过深入的功能描述,因为您主要想要了解每种技术的高级概述,功能以及它与其他所有功能的匹配情况。但是,请仔细阅读一些将Web层,EJB和持久性结合在一起的示例。

0

获取"Heads First Servlets and JSP" - 这是一个半怪异的书,但内容非常好,人们把它作为Sun认证Web组件开发考试(SCWCD)的准备指南,SCJP(Sun认证Java程序员)考试是必备条件。

你应该认真考虑让这两个SCJP和SCWD,至少是因为你强迫自己通过物质来获得。他们不能保证让你成为比现在更好的程序员,但他们会让你接触到(通常)只能在工作场所使用的Java/Java EE材料。

我还使用了一些在线自学课程,webucator.com,并且我建议你检查自己的SCJP 5.0Web Services课程(后来的相似,但是从Web组件开发不同的。)

有框架在那里使Java EE web开发变得不那么痛苦,但是你越了解它们的内涵,对它的理解就会越大(并且你将会更好地使用它或者替代它。)

另一本可能要检查的书(也许你应该先检查)是Downey's Web Development with Java: Using Hibernate, Jsp and Servlets。它现在已经绝版了,但是有可用的副本可供销售。 Downey教授使用本书在佛罗里达国际大学开展Java EE课程。大学涵盖了开发数据库驱动的Web应用程序的开始和结束。 *

  • 即使最终使用OR映射器,您也应该对SQL和关系数据库理论有所了解。这类知识与开发非平凡的Web应用程序并行不悖。