从哪里开始?

对于有抱负的开发人员,技术的前景会成为压倒一切的动力。但是技术也是在不断变化发展中的。你会冒着学习的东西很快就会过时的风险吗?

客户端技术

我建议新手开发人员可以从基础的学起;HTML、CSS何JavaScript。这些技术是web开发的核心。而且这些技术在某种意义上说也是通用的,无论你是Java web开发人员Ruby Web 开发人员都要用到。

HTML

HTML——超文本标记语言。这是用来生成网页的。你需要对HTML有一个深入的了解。在万维网初期,HTML习惯上是一个由网页服务器向浏览器提供的文件。它对静态内容非常有效。不会改变内容。但是,现在人们越来越倾向于动态的内容。于是,HTML不再是静态的文件,HTML开始按需生成。作为一个Java web开发者,你得会编写如何为网页浏览器生成HTML文件的代码。你需要对HTML文档的结构有一个深刻的理解。

CSS

CSS——层叠样式表。这是用来显示页面样式的。它控制字体、颜色和布局。与HTML定义的是网页的内容不同,CSS定义的是当在浏览器中呈现时网页的外观。例如,你可以对桌面Web应用程序使用一套CSS规则,对移动应用程序使用另一套不同的CSS规则。相同的HTML,当渲染在浏览器上时,就有了两个完全不同的外观。

Javascript

Javascript——制作网页上的东西。不要将Java与Javascript混淆。虽然它们有一些语法的相似性,但这是两个完全不同的编程语言。JavaScript才能真正推动Web 2.0应用程序。通过使用Javascript,你可以根据用户的操作,动态地改变HTML/CSS,提供更有视觉感受的网页给用户。

HTTP

HTTP(超文本传输协议)——客户端和Web服务器之间的通信。有太多的web开发人员居然对HTTP一无所知。HTTP绝对是你必学的关键技能。尤其是当你要用AJAX工作的时候。你需要知道一个POST和一个GET之间的区别。你应该记住HTTP状态码200,301和404的含义——以及更多。作为一个Java web开发人员,你的日常工作不可避免要与HTTP打交道。

服务器技术

Java

Java——本文的问题就是如何成为一个Java web开发人员。所以,你当然得知道Java编程语言。除了Java本身,你还应该熟悉Java Servlet API。有一些Java web框架,隐藏着Java Servlet API的用法。如果出现问题,那么你需要知道幕后究竟发生了什么事情。

JPA

JPA——Java持久性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框架

Spring框架是构建web应用程序一个非常棒的工具集合。虽然没有精确的统计数据,但我看到有文章估算已有超过60%基于Java的web应用程序使用Spring。这其实也不奇怪。Spring Core有IoC容器和依赖注入。Spring MVC,是一款基于MVC的成熟又灵活的web框架。Spring Security是保护网站最好的工具。Spring Date有助于维护持久性。Spring还有其他的项目,你可以用来构建大范围推广的应用。

当涉及到整体框架时,真的找不到替代品代替Spring。哪怕存在着很多针对不同Spring项目的竞争技术。但是,没有单一的解决方案,能够具备Spring框架系列项目的深度和广度。在我的Spring入门在线教程上,我对主要的Spring框架项目做了一个很好的概述,并说明了如何使用它们来构建企业级应用程序。

结论

成为Java web开发人员是不可能一蹴而就的。没有所谓的《21天自学成为Java web开发者》的速成教材,也没有捷径。你需要学习和掌握很多不同的技术。而所有这些都需要时间来学习。

成为Java web开发人员是一个非常有意义的事业。你刚入门的时候可以只专注于前端技术,也可以只专研后端技术。随着以后开发的项目增多,你就可以从这一技术领域转移到另一个技术领域。

如果我现在作为一个Java web开发人员入门的话,我会先专注于客户端技术,因为客户端技术独立于服务器端技术。因此,等你入门了以后,你将会有更多的就业选择。此外,虽然客户端技术的薪酬通常比服务器端的低,但这会是一个良好的开端。你可以快速获得技能以便于就业,然后再转移焦点,拓宽技能集,以谋求更好的就业机会。

java做网页客户端_如何成为 Java web开发者相关推荐

  1. java实现网页保存_详解Java两种方式简单实现:爬取网页并且保存

    对于网络,我一直处于好奇的态度.以前一直想着写个爬虫,但是一拖再拖,懒得实现,感觉这是一个很麻烦的事情,出现个小错误,就要调试很多时间,太浪费时间. 后来一想,既然早早给自己下了保证,就先实现它吧,从 ...

  2. 用java做登录界面_求用JAVA编写的登陆界面!

    展开全部 这是我刚做的,JAVA布局与其它语言相比难度较大,建议你将两张图片PS成一张图片,做32313133353236313431303231363533e4b893e5b19e313332393 ...

  3. 手机java做贪吃蛇_如何用Java写一个贪吃蛇游戏

    这是一位拓胜学员用Java写贪吃蛇游戏的心得:今天课程设计终于结束了自己学java没以前学C+那么用功了觉得我学习在哪里都是个开口向上的抛物线,现在应该在右半边吧,好了进入正题. 写java贪吃蛇也是 ...

  4. 如何做一个国产数据库(七) 网络传输 java做订阅客户端

    如何做一个国产数据库一 如何做一个国产数据库二 如何做一个国产数据库三 如何做一个国产数据库四 如何做一个国产数据库五 如何做一个国产数据库六 server端协议定义 再次强调一下我们的protoco ...

  5. java 微博客户端_[置顶] java新浪微博客户端

    最近又捣鼓java来.在eclipse看到上学期写的这个客户端.感触良多. 一.关于客户端 上学期才真正接触一门编程语言,java.基础学得差不多了,雀雀欲试,想用java做点自己的东西出来.最后,在 ...

  6. 八爪鱼 是java做的吗_章鱼扫描仪:Java构建工具和恶意软件

    八爪鱼 是java做的吗 Alvaro Munoz最近在GitHub Security Lab网站上发布了" Octopus扫描程序恶意软件:攻击开源供应链 ". 我发现这篇文章很 ...

  7. java ssh客户端_简单的Java SSH客户端

    java ssh客户端 可以使用jcabi-ssh在Java中通过几行代码通过SSH执行shell命令: String hello = new Shell.Plain(new SSH("ss ...

  8. vue和Java做数据交互_基于vue和springmvc前后端分离,json类接口调用介绍

    基于vue和springmvc前后端分离,json类接口调用介绍 版本要求:spring-3.2.9.RELEASE.vue-2.9.2.axios-0.17.1,其中axios作为http clie ...

  9. java做同学录管理系统_基于jsp的同学录管理系统-JavaEE实现同学录管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的同学录管理系统, 该项目可用各类java课程设计大作业中, 同学录管理系统的系统架构分为前后台两部分, 最终实现在 ...

最新文章

  1. linux 切换python版本_Linux下python默认版本切换成替代版本(示例代码)
  2. Python自动化运维之函数进阶
  3. java基础教程传值_Java基础——方法传值(基本数据类型 VS 引用数据类型)
  4. db2分页查询语句优化_面试官:数据量很大,分页查询很慢,怎么优化?
  5. MATLAB拉格朗日插值
  6. Python高级爬虫实战,JS解密咪咕音乐登录参数分析
  7. bzoj 2131: 免费的馅饼【dp+树状数组】
  8. 通过system用户操作oracle数据库相关
  9. Linux开机报write same failed manually zeroing错误
  10. 【Python】ModuleNotFoundError: No module named 'pandas.io.data'
  11. 网站服务器修改内容,网站被收录后内容还可以修改吗?
  12. 通过360安全卫士安装IE补丁后,IE浏览器会出问题
  13. 使用Flash,HTML5和Unity开发网页游戏的对比
  14. HackerRank [Algo] Matrix Rotation
  15. 检错纠错码(奇偶校验码 CRC循环冗余校验码 海明码)
  16. 大厂面试 | 阿里巴巴大数据工程师面试题汇总
  17. ubuntu挂载移动硬盘时提示Unable to mount
  18. CF1132D Stressful Training Solution
  19. 24岁小伙跟女友回家 与41岁准丈母娘畸恋私奔
  20. 目前最新android处理器排行榜,2016上半年安卓手机处理器排行:骁龙820无意外夺冠...

热门文章

  1. 数据库水平拆分和垂直拆分区别(以mysql为例)
  2. 混淆矩阵、准确率、召回率、ROC曲线、AUC
  3. laravel表单验证
  4. HDU 4432 Sum of divisors 2012 Asia Tianjin Regional Contest
  5. ubuntu 下载速度快但网页打开慢的解决方法
  6. Visual Studio2005下配置及运行NUnit
  7. Music Workshop (Unix Name: clavio)
  8. 报表FineReport部署Tomcat服务器
  9. 循环c语言格式,关于for循环的格式
  10. mysql 两个结果集求差