最近有人在我的Facebook页面上问我,“我怎样才能成为一个JavaWeb开发者?”对这个问题,答案其实其实不简单。成为一个JavaWeb开发人员包括很多方面。我遇到过的Java程序员,可能曾是优秀的前端开发人员,也可能之前是不错的后端开发人员。所谓“前端”,我指的是众多浏览器端技术——HTML、CSS、JavaScript,和Java模板技术,如Thymeleaf、SiteMesh,或古老的JSPs。后端开发人员有更坚实的Java、数据库(SQL和NoSQL),消息传递(JMS/AQMP)和Web服务(SOAP/REST)技能。你应当也知道所谓的“全栈”Java开发人员。这是个人的技能集合。一个完全的全栈开发者应当一样胜任前端开发和后端开发的工作。这可能是难度系数最高的一条路了,由于所触及得技术非常多样。或许有一天,你前一秒还在jQuery调试,接下来就去性能调优Oracle数据库查询了。但是,成为一个全栈Java开发人员是需要时间和经验的。从哪里开始?对有抱负的开发人员,技术的前景会成为压倒一切的动力。但是技术也是在不断变化发展中的。你会冒着学习的东西很快就会过时的风险吗?客户端技术我建议新手开发人员可以从基础的学起;HTML,CSS和JavaScript。这些技术是web开发的核心。而且这些技术在某种意义上说也是通用的,不管你是Javaweb开发人员还是RubyWeb开发人员都要用到。HTMLHTML——超文本标记语言。这是用来生成页的。你需要对HTML有一个深入的了解。在万维早期,HTML习惯上是一个由页服务器向浏览器提供的文件。它对静态内容非常有效。不会改变内容。但是,现在人们愈来愈倾向于动态的内容。因而,HTML不再是静态的文件,HTML开始按需生成。作为一个Javaweb开发者,你得会编写如何为页浏览器生成HTML文件的代码。你需要对HTML文档的结构有一个深入的理解。CSSCSS——层叠样式表。这是用来显示页面样式的。它控制字体、色彩和布局。与HTML定义的是页的内容不同,CSS定义的是当在浏览器中出现时页的外观。例如,你可以对桌面Web应用程序使用一套CSS规则,对移动应用程序使用另外一套不同的CSS规则。相同的HTML,当渲染在浏览器上时,就有了两个完全不同的外观。JavascriptJavascript——制作页上的东西。不要将Java与Javascript混淆。虽然它们有一些语法的相似性,但这是两个完全不同的编程语言。JavaScript才能真正推动Web2.0应用程序。通过使用JavaScript,你可以根据用户的操作,动态地改变HTML/CSS,提供更有视觉感受的页给用户。HTTPHTTP(超文本传输协议)——客户端和Web服务器之间的通讯。有太多的web开发人员竟然对HTTP一无所知。HTTP绝对是你必学的关键技能。尤其是当你要用AJAX工作的时候。你需要知道一个POST和一个GET之间的区分。你应当记住HTTP状态码,和的含义——和更多。作为一个Javaweb开发人员,你的日常工作不可避免要与HTTP打交道。服务器端技术JavaJava——本文的问题就是如何成为一个Javaweb开发人员。所以,你固然得知道Java编程语言。除Java本身,你还应当熟习JavaServletAPI。有一些Javaweb框架,隐藏着JavaServletAPI的用法。如果出现问题,那末你需要知道幕后究竟产生了甚么事情。JPAJPA——Java持久性API——使用数据库。JPA是Java传统关系数据库的标准。Hibernate是现在使用最广泛的JPA实现。作为一个Javaweb开发人员,你肯定要用到数据库。你要从数据库中得到内容,以显示在页上,或从用户那里接收内容存储到数据库中。所以,Javaweb开发人员需要知道如何使用JPA。Java应用程序服务器Java应用程序服务器——Javaweb应用程序的运行时容器。Tomcat是到目前为止最流行的Java应用程序服务器。Web应用程序归档文件,又名WAR文件,有一个Java标准。这些被部署到应用程序服务器,如Tomcat,以此为你的web应用程序提供运行环境。十年之前,还流行在应用程序和应用程序服务器之间运用更复杂的耦合。但是,现在的趋势更支持应用程序和运用服务器之间的疏松耦合。Java框架请注意,到目前为止,我还没有提到任何Java框架。我所描写的,都是你作为一个Javaweb开发人员会用到的不同技术。客户端技术完全独立于服务器端技术。Firefox不在乎,服务器运行的是Java,Python还是.NET。不过,新手开发人员仿佛常常遗忘这一点。不使用Java框架的Javaweb开发也是可以的。但是这样一来,你需要额外写很多代码来处理本来框架可以为你办到的事情。这就是为何开发Javaweb应用程序时,你通常会想要使用某一个框架。Spring框架Spring框架是构建web应用程序一个非常棒的工具集合。虽然没有精确的统计数据,但我看到有文章估算已有超过60%基于Java的web应用程序使用Spring。这其实也不奇怪。SpringCore有IoC容器和依赖注入。SpringMVC,是一款基于MVC的成熟又灵活的web框架。SpringSecurity是保护站最好的工具。SpringDate有助于保护持久性。Spring还有其他的项目,你可以用来构建大范围推行的运用。当涉及到整体框架时,真的找不到替代品代替Spring。哪怕存在着很多针对不同Spring项目的竞争技术。但是,没有单一的解决方案,能够具有Spring框架系列项目的深度和广度。在我的Spring入门教程上,我对主要的Spring框架项目做了一个很好的概述,并说明了如何使用它们来构建企业级应用程序。GrailsGrails是建立在Spring之上的快速应用程序开发框架。它不但具有Spring的所有内容,还鉴戒了Groovy的生产力优势。我喜欢将Grails形容为用Groovy包装过的Spring。关键一点要记住的是,其背后仍然是Spring。Grails现在愈来愈遭到企业的欢迎。Grails的优势之一就是其出色的社区支持。SpringRooSpringRoo是一个纯Java框架,这仿佛和Grails的作用相同,不过它没有Groovy。我不是SpringRoo的的粉丝,并且我最后一次使用SpringRoo也不是由于市场要求。SpringRoo还没有被广泛接受。Play基于Scala的框架。虽然我还没有尝试过Play。但是现在市场上面的反响不错。所以有机会的话我会试一试。不过它目前还没有被企业中广泛采取。最少到现在为止还没有。JBossSeamJBossSeam可能是最接近Spring框架的替代品。JBossSeam遵守JEE标准。JBossSeam是一个很好的选择,具有良好的支持而被企业所接受。不过,JBossSeam常常由于在开发和性能方面比Spring慢而饱受诟病。但是有的批评对JBossSeam过于刻薄了。结论成为Javaweb开发人员是不可能一挥而就的。没有所谓的《21天自学成为Javaweb开发者》的速成教材,也没有捷径。你需要学习和掌握很多不同的技术。而所有这些都需要时间来学习。
成为Javaweb开发人员是一个非常有意义的事业。你刚入门的时候可以只专注于前端技术,也可以只专研后端技术。随着以后开发的项目增多,你就可以从这1技术领域转移到另一个技术领域。
如果我现在作为一个Javaweb开发人员入门的话,我会先专注于客户端技术,由于客户端技术独立于服务器端技术。因此,等你入门了以后,你将会有更多的就业选择。另外,虽然客户端技术的薪酬通常比服务器端的低,但这会是一个良好的开端。你可以快速取得技能以便于就业,然后再转移焦点,拓宽技能集,以谋求更好的就业机会。点击浏览原文查看历史文章
白癜风的土方白癜风多长时间能好