最近有人在我的 Facebook 页面上问我,“我如何成为一名 Java Web 开发人员?”这个问题真的没有简单的答案。成为 Java Web 开发人员有很多方面。我遇到过优秀的前端开发人员或优秀的后端开发人员的 Java 开发人员。对于“前端”,我指的是更多的浏览器端技术——HTML、CSS、Javascript,然后是 Java 模板技术,例如 Thymeleaf、Sitemesh,或者只是不错的旧 JSP。后端开发人员将拥有更强的 Java、数据库(SQL 和 NoSQL)、消息传递(JMS/AQMP)和 Web 服务(SOAP/REST)技能。
您还拥有所谓的“全栈”Java 开发人员。这是我的个人技能。全栈开发人员与前端开发人员和后端开发人员一样熟练。这可能是最难走的路,因为涉及的技术多种多样。有一天您可能正在调试 JQuery 中的某些内容,而下一天您可能正在调整 Oracle 数据库查询的性能。成为全栈 Java 开发人员需要时间和经验。
从哪儿开始?
对于有抱负的开发人员来说,技术前景可能是压倒性的。技术领域也在不断发展。您是否冒着学习很快就会过时的东西的风险?
客户端技术
我对新开发人员的建议是从基础开始。 HTML、CSS 和 Javascript。这些技术是 Web 开发的核心。这些技术在某种意义上也是通用的,无论您是 Java Web 开发人员还是 Ruby Web 开发人员都没有关系。
HTML
HTML – 超文本标记语言。 这就是制作网页的原因。您需要对 HTML 有深入的了解。回到万维网之初,HTML 传统上是一种由网络服务器提供给浏览器的文件。这对静态内容非常有用。从未改变的东西。但这种情况越来越少。人们想要动态内容。这样,HTML不再是一个静态文件,HTML是按需生成的。作为 Java Web 开发人员,您将编写代码来为 Web 浏览器生成 HTML 文档。您需要对 HTML 文档的结构有深入的了解。
CSS
CSS——级联样式表。 这就是页面的样式。它控制字体、颜色和布局。 HTML 定义了网页的内容,而 CSS 定义了它在浏览器中呈现时的外观。例如,您可以为桌面 Web 应用程序使用一组 CSS 规则,而为移动应用程序使用一组不同的 CSS 规则。相同的 HTML,但在浏览器呈现时呈现出两种完全不同的外观。
Javascript
Javascript – 在网页上做事。不要混淆 Javascript 和 Java。虽然有一些语法相似之处,但这是两种完全不同的编程语言。 Javascript 才是真正驱动 Web 2.0 应用程序的东西。通过使用 Javascript,您可以根据用户操作动态更改 HTML/CSS,为用户提供更像应用程序的网页感觉。
HTTP
超文本传输协议 ——客户端和 Web 服务器之间的通信。我看到太多不了解 HTTP 的 Web 开发人员。这对您的理解至关重要。特别是当您开始使用 AJAX 时。您需要知道 POST 和 GET 之间的区别。您应该已经记住了 HTTP 状态代码 200、301 和 404 等的含义。作为 Java Web 开发人员,您每天都会使用 HTTP。
服务器端技术
爪哇
Java – 问题是如何成为 Java Web 开发人员。因此,您当然需要了解 Java 编程语言。除了 Java 本身,您还应该熟悉 Java Servlet API 。有许多 Java Web 框架,它们掩盖了 Java Servlet API 的用法。当出现问题时,您将需要知道幕后发生的事情。
JPA
JPA – Java Persistence API – 使用数据库。 JPA 是使用 Java 处理传统关系数据库的标准。 Hibernate 是当今最流行的 JPA 实现。作为 Java Web 开发人员,您将与数据库打交道。您将从数据库中获取内容以显示在网页上,或从用户处接收内容以存储在数据库中。 Java Web 开发人员需要知道如何使用 JPA。
Java 应用程序服务器
Java 应用程序服务器 ——Java Web 应用程序的运行时容器。 Tomcat 是迄今为止最流行的 Java 应用程序服务器。 Web 应用程序归档文件(又名 WAR 文件)有一个 Java 标准。它们被部署到 Tomcat 等应用程序服务器,为您的 Web 应用程序提供运行时环境。十年前,趋势是在应用程序和应用程序服务器之间使用更复杂的耦合。然而,当前的趋势是支持应用程序和应用程序服务器之间的松散耦合。
Java框架
注意到到目前为止,我还没有提到任何关于可供您使用的大量 Java 框架的信息吗?到目前为止,我已经描述了作为 Java Web 开发人员将使用的不同技术。客户端技术完全独立于服务器端技术。 Firefox 不关心服务器运行的是 Java、Python 还是 .NET。新开发人员似乎常常忘记这一点。
可以在不使用 Java 框架之一的情况下进行 Java Web 开发。如果这样做,您将编写大量代码来处理框架会为您处理的事情。这就是为什么在开发 Java Web 应用程序时,您通常会希望使用其中一种框架。
弹簧框架
Spring Framework 是用于构建大型 Web 应用程序的杰出工具集合。确切的指标很难确定,但我看到一些估计表明超过 60% 的基于 Java 的 Web 应用程序使用了 Spring。这真的不足为奇。您拥有来自 Spring Core 的 IoC 容器和依赖项注入。 Spring MVC,一个成熟且灵活的基于 MVC 的 Web 框架。 Spring Security,用于保护您的网站的一流工具。 Spring Data 有助于持久化。 Spring 还有其他项目可以帮助您构建大型应用程序。
就整体框架而言,Spring 确实没有其他选择。有针对各种 Spring 项目的竞争技术。但是,没有一个解决方案具有 Spring Framework 系列项目的深度和广度。在我的 Spring 在线教程简介 中,我很好地概述了主要的 Spring Framework 项目以及如何使用它们构建企业级应用程序。
圣杯
Grails 是一个构建在 Spring 之上的快速应用程序开发框架。您将获得 Spring 的一切,然后是 Groovy 的生产力优势。我喜欢将 Grails 描述为带有 Groovy 包装器的 Spring。肯定是过于简单化了,但重要的是要记住,Spring 仍然在幕后。
Grails 在企业中的使用越来越多。 Grails 的优势之一是其出色的社区支持。
春鲁
Spring Roo 是一个纯 Java 框架,它似乎试图在没有 Groovy 的情况下完成 Grails 所做的事情。我不是 Spring Roo 的粉丝,上次我查看市场时也不是。 Spring Roo 尚未被广泛采用。
玩
基于 Scala 的框架。我还没有机会尝试 Play。我在市场上听到了很多关于 Play 的好消息。我觉得 Play 是一个有趣的选择。但它在企业中的应用并不广泛。至少现在还没有。游戏正在获得一些令人鼓舞的牵引力。
JBoss 接缝
JBoss Seam 可能是最接近于 Spring Framework 的替代品。 JBoss Seam 遵循 JEE 标准。 JBoss Seam 是一个很好的选择,在企业中得到了很好的支持和采用。 JBoss Seam 经常被批评在开发和性能方面比 Spring 慢。有些人对 JBoss Seam 的批评要多得多。
结论
成为 Java Web 开发人员不是一蹴而就的。没有一本书叫做“21 天自学 Java Web 开发”。成为 Java Web 开发人员没有捷径可走。您需要学习和掌握许多不同的技术。这些都需要时间来学习。
成为一名 Java Web 开发人员可能是一份非常有回报的职业。您可以开始只关注前端,或者只关注后端技术。较大的 Java 开发商店将允许您专注于技术的一个领域而不是另一个领域。
如果我今天开始作为一名 Java Web 开发人员,我可能会首先关注客户端技术。客户端技术与服务器端技术无关。因此,当您开始工作时,您将有更多的就业选择。客户端技术的报酬通常低于服务器端,但这是一个很好的起点。您可以快速获得适合就业的技能,然后转移注意力并拓宽您的技能组合,然后寻找更好的就业机会。