“怎么才能成为一个Java Web开发者?”对于这个问题,答案其实并不简单。成为一个Java Web开发人员包括不少方面。我从北京尚学堂毕业到如今遇到过很多的Java程序员,有的可能曾是优秀的前端开发人员,也可能之前是不错的后端开发人员。所谓“前端”,通常指众多浏览器端技术——HTML、CSS、Javascript,以及Java模板技术。后端开发人员有更坚实的Java、数据库(SQL和NoSQL),消息传递(JMS/AQMP)和Web服务(SOAP/REST)技能。javascript
你应该也知道所谓的“全栈”Java开发人员。这是我的的技能集合。一个完整的全栈开发者应该一样胜任前端开发和后端开发的工做。这多是难度系数最高的一条路了,由于所涉及得技术很是多样。也许有一天,你前一秒还在jQuery调试,接下来就去性能调优Oracle数据库查询了。可是,成为一个全栈Java开发人员是须要时间和经验的。html
对于有抱负的开发人员,技术的前景会成为压倒一切的动力。可是技术也是在不断变化发展中的。你会冒着学习的东西很快就会过期的风险吗?前端
我建议新手开发人员能够从基础的学起;HTML,CSS和javascript。这些技术是web开发的核心。并且这些技术在某种意义上说也是通用的,不管你是Java web开发人员仍是Ruby Web开发人员都要用到。java
HTML——超文本标记语言。这是用来生成网页的。你须要对HTML有一个深刻的了解。在万维网初期,HTML习惯上是一个由网页服务器向浏览器提供的文件。它对静态内容很是有效。不会改变内容。可是,如今人们愈来愈倾向于动态的内容。因而,HTML再也不是静态的文件,HTML开始按需生成。做为一个Java web开发者,你得会编写如何为网页浏览器生成HTML文件的代码。你须要对HTML文档的结构有一个深入的理解。程序员
CSS——层叠样式表。这是用来显示页面样式的。它控制字体、颜色和布局。与HTML定义的是网页的内容不一样,CSS定义的是当在浏览器中呈现时网页的外观。例如,你能够对桌面Web应用程序使用一套CSS规则,对移动应用程序使用另外一套不一样的CSS规则。相同的HTML,当渲染在浏览器上时,就有了两个彻底不一样的外观。web
Javascript——制做网页上的东西。不要将Java与Javascript混淆。虽然它们有一些语法的类似性,但这是两个彻底不一样的编程语言。Javascript才能真正推进Web 2.0应用程序。经过使用Javascript,你能够根据用户的操做,动态地改变HTML/CSS,提供更有视觉感觉的网页给用户。数据库
HTTP(超文本传输协议)——客户端和Web服务器之间的通讯。有太多的web开发人员竟然对HTTP一无所知。HTTP绝对是你必学的关键技能。尤为是当你要用AJAX工做的时候。你须要知道一个POST和一个GET之间的区别。你应该记住HTTP状态码200,301和404的含义——以及更多。做为一个Java web开发人员,你的平常工做不可避免要与HTTP打交道。编程
Java——本文的问题就是如何成为一个Java web开发人员。因此,你固然得知道Java编程语言。除了Java自己,你还应该熟悉Java Servlet API。有一些Java web框架,隐藏着JavaServlet API的用法。若是出现问题,那么你须要知道幕后究竟发生了什么事情。后端
JPA——Java持久性API——使用数据库。JPA是Java传统关系数据库的标准。Hibernate是如今使用最普遍的JPA实现。做为一个Java web开发人员,你确定要用到数据库。你要从数据库中获得内容,以显示在网页上,或从用户那里接收内容存储到数据库中。因此,Java web开发人员须要知道如何使用JPA。浏览器
Java应用程序服务器——Java web应用程序的运行时容器。Tomcat是到目前为止最流行的Java应用程序服务器。Web应用程序归档文件,又名WAR文件,有一个Java标准。这些被部署到应用程序服务器,如Tomcat,以此为你的web应用程序提供运行环境。十年之前,还流行在应用程序和应用程序服务器之间应用更复杂的耦合。然而,如今的趋势更支持应用程序和应用服务器之间的松散耦合。
请注意,到目前为止,我尚未提到任何Java框架。我所描述的,都是你做为一个Java web开发人员会用到的不一样技术。客户端技术彻底独立于服务器端技术。Firefox不在意,服务器运行的是Java,Python仍是.NET。不过,新手开发人员彷佛经常遗忘这一点。
不使用Java框架的Java web开发也是能够的。可是这样一来,你须要额外写不少代码来处理本来框架能够为你办到的事情。这就是为何开发Java web应用程序时,你一般会想要使用某一个框架。
Spring框架是构建web应用程序一个很是棒的工具集合。虽然没有精确的统计数据,但我看到有文章估算已有超过60%基于Java的web应用程序使用Spring。这其实也不奇怪。Spring Core有IoC容器和依赖注入。Spring MVC,是一款基于MVC的成熟又灵活的web框架。Spring Security是保护网站最好的工具。Spring Date有助于维护持久性。Spring还有其余的项目,你能够用来构建大范围推广的应用。
当涉及到总体框架时,真的找不到替代品代替Spring。哪怕存在着不少针对不一样Spring项目的竞争技术。可是,没有单一的解决方案,可以具有Spring框架系列项目的深度和广度。在Spring入门在线教程上,我对主要的Spring框架项目作了一个很好的概述,并说明了如何使用它们来构建企业级应用程序。
Grails是创建在Spring之上的快速应用程序开发框架。它不但拥有Spring的全部内容,还借鉴了Groovy的生产力优点。我喜欢将Grails形容为用Groovy包装过的Spring。关键一点要记住的是,其背后依然是Spring。
Grails如今愈来愈受到企业的欢迎。Grails的优点之一就是其出色的社区支持。
Spring Roo是一个纯Java框架,这彷佛和Grails的做用相同,不过它没有Groovy。我不是Spring Roo的的粉丝,而且我最后一次使用Spring Roo也不是由于市场要求。Spring Roo尚未被普遍接受。
基于Scala的框架。虽然我尚未尝试过Play。可是如今市场上面的反响不错。因此有机会的话我会试一试。不过它目前尚未被企业中普遍采用。至少到如今为止尚未。
JBoss Seam多是最接近Spring框架的替代品。JBoss Seam遵循JEE标准。JBoss Seam是一个很好的选择,具备良好的支持而被企业所接受。不过,JBoss Seam常常由于在开发和性能方面比Spring慢而饱受诟病。可是有的批评对于JBoss Seam过于苛刻了。
成为Java web开发人员是不可能一蹴而就的。没有所谓的《21天自学成为Java web开发者》的速成教材,也没有捷径。你须要学习和掌握不少不一样的技术。而全部这些都须要时间来学习。
成为Java web开发人员是一个很是有意义的事业。你刚入门的时候能够只专一于前端技术,也能够只专研后端技术。随着之后开发的项目增多,你就能够从这一技术领域转移到另外一个技术领域。
我在北京尚学堂培训学习的时候,老师讲的好:做为一个Java web开发人员入门的话,先专一于客户端技术,由于客户端技术独立于服务器端技术。所以,等你入门了之后,你将会有更多的就业选择。此外,虽然客户端技术的薪酬一般比服务器端的低,但这会是一个良好的开端。你能够快速得到技能以便于就业,而后再转移焦点,拓宽技能集,以谋求更好的就业机会。
本博客更新会在第一时间推送到微信公众号,欢迎你们关注。
更多猛料!欢迎扫描上方微信公众号 ( 资料领取验证消息:156)