微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站。(关注公众号后回复”Java“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有数据库、分布式、微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南、Java程序员面试指南等干货资源)

Java Web是众多技术汇总形成的代名词,展开来说,包括了非常多相关技术。

Java发展了20年, 现在已经不仅仅是一个单纯的语言了, 而是一套完整的生态系统, 其中的术语像 HTML, XML, CSS, Javascript , AJAX, JQuery,Prototype, HTTP, Tomcat, JBoss, Nginx , Memecached , Redis, MVC ,Servlet, JSP, Struts, Hibernate, myBatis , Spring, JFinal, MySql, JDBC, EJB, JMS, Swing , AWT, Reflection, OSGi... 铺面而来, 搞的你头晕脑胀, 无所适从,很容易就Lost了。

这里放一张网上的学习路线图,虽然比较过时,但是还是有一定参考价值的。

其实在以前,JavaWeb开发需要兼顾前端和后端,Java程序员也要会前端技术,比如上述的html css和js等,并且表现层仍然使用着jsp,在后端进行渲染,而现在前端技术迅速发展,前端已经可以自己完成模板的渲染了,于是前后端逐渐分离,后端程序员只需要提供json数据接口即可,压根不需要负责模板的渲染。

于是乎,上述的内容很多都没那么重要了,但是一个完整的Java web项目或多或少都会用到这些技术,所以有一些根基的东西过了这么多年了都还没变,比如servlet,比如jdbc等等。

作为Java后端程序员,更加关注的是业务逻辑的开发以及服务端技术的学习,所以这里我们参考许令波老师的《深入分析JavaWeb技术内幕》,JavaWeb的技术体系大概可以分为以下几个部分。

即第一部分是web开发的基础知识,第二部分是Java的核心技术,第三部分是Java服务端的技术。

这里按照我自己的理解挑选本书比较核心的章节作为知识脉络。

0 JavaSE基础

既然使用Java语言做web开发,首先必须掌握的就是Java的核心技术,可以参考我的专栏文章:深入Java核心技术

1 web请求流程

这部分包括了http的基本知识,以及计算机网络相关基础知识,将在网络专栏详细介绍。

2 JavaIO技术

这部分包括了JavaIO的基本知识以及NIO的相关知识,这部分知识可以参考我的专栏:Java网络编程与NIO,其中详细了介绍NIO的相关知识。

3 Java Web中的中文编码问题

这部分虽然内容不多但是深究起来还是一块比较重要的内容,后续会在补充。

4 JVM基础,class字节码,类加载机制,javac编译原理等

这部分主要是JVM相关的技术内容,会在我的专栏: 深入理解JVM虚拟机 中陆续发表。

5 servlet,jsp , jdbc,session,cookie,Tomcat,jetty等,都是java web服务端的核心技术,将在本系列文章中讲述。当然在此之前最好看一下之前的内容,特别是Java网络编程和NIO的内容,是奠定后面内容学习的基础。

6 Spring,SpringMVC以及mybatis,velocity等内容,是在之前基础上设计出来的框架和模板技术,也是现在比较流行的技术。Spring相关的内容会在专栏 Spring源码解析 中详细介绍。而mybatis和velocity的内容会在本系列文章中放出。

7 另外,在Javaweb开发过程中常用到的Maven,git,甚至是ide等工具,也会有所介绍。

但是在此之前,我想说,学习这些技术基础,不妨先了解一下这些技术的历史,以及他们为什么产生,为什么消亡,了解一下过去的开发流程和现在的开发流程有何却别,产生这些变化的原因是什么,为什么会出现这些框架,为什么程序员会被区分为前端和后端。带着这些问题,在本专栏的前几章,你会找到答案。

走进JavaWeb技术世界开篇:JavaWeb技术汇总的更多相关文章

  1. 走进JavaWeb技术世界1:JavaWeb的由来和基础知识

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  2. 走进JavaWeb技术世界3:JDBC的进化与连接池技术

    走进JavaWeb技术世界3:JDBC的进化与连接池技术 转载公众号[码农翻身] 网络访问 随着 Oracle, Sybase, SQL Server ,DB2,  Mysql 等人陆陆续续住进数据库 ...

  3. 走进JavaWeb技术世界14:Mybatis入门

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  4. 走进JavaWeb技术世界7:Tomcat和其他WEB容器的区别

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  5. Java工程师学习指南第2部分:JavaWeb技术世界

    本文整理了微信公众号[Java技术江湖]发表和转载过的Java Web优质文章,想看到更多Java技术文章,就赶紧关注吧. IDEA中的Maven实战 老师,免费版的IDEA为啥不能使用Tomcat? ...

  6. 深入JavaWeb技术世界15:深入浅出Mybatis基本原理

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  7. javaweb开发所需的技术需求

    本文仅为新手想学习javaWeb的提供一些参考,有不足或错误之处可以修改或添加,另希望以后学习者可以同样将自己的心得发来和大家分享...谢谢 1 前台:html,css,javascript  这是最 ...

  8. VC++/MFC(VC6)开发技术精品学习资料下载汇总

    工欲善其事,必先利其器,VC开发MFC Windows程序,Visual C++或Visual Studio是必须的,恩,这里都给你总结好了,拿去吧:VC/MFC开发必备Visual C++.Visu ...

  9. 转:基于IOS上MDM技术相关资料整理及汇总

    一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入 ...

随机推荐

  1. JVM学习笔记——类加载过程

    JVM学习笔记——类加载过程 类加载模型——双亲委派模型(Parents Delegation Model)也可称为“溯源委派加载模型” Java的类加载器是一个运行时核心基础设施模块,主要是启动之初 ...

  2. 关于微信小程序发布新版本后的提示用户更新的方法详解

    当小程序发布新的版本后 ,用户如果之前访问过该小程序,通过已打开的小程序进入(未手动删除),则会检测新版本,提醒用户更新新的版本 话不多说,上代码 App({ onLaunch: function ( ...

  3. vue去哪儿网项目环境配置

     一.首先安装node.js 根据自己的(windows或mac)系统进行安装node,在开发环境中一般安装LTS版本.安装成功后,在终端输入"node -v"和"npm ...

  4. iOS有哪些数据类型/基本数据类型?

    简述 本文主要探究使用OC作为iOS开发语言时,我们能使用哪些数据类型. 一切类型始于C. C语言的类型 基本数据类型: 基本数据类型(fundamental data types)也叫原始数据类型( ...

  5. ulimit用法

    ulimit -a:显示当前所有的资源限制 -c:core文件大小 -f:设置创建文件的最大值 -n:设置内核可以同时打开的文件描述符的最大值 -p:设置管道缓冲区的最大值 -s:设置堆栈的最大值 - ...

  6. linux设置密钥登录(只允许密钥登录)

    一.root用户使用这条命令看看家目录有没有(.ssh文件夹),cd .ssh,如果存在就会进入这个文件夹,不存在就(makedir .ssh),修改.ssh这个文件夹权限(chmod 700 .ss ...

  7. 【shell】shell基础

    一.数据类型 1.shell变量 运行shell时,会同时存在三种变量: 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量. 2) 环 ...

  8. Viewer.js的inline模式

    开始 前几天接到一个小的支持,要做一个有图像预览和操作功能的demo,并且给出了参照的模板.刚开始简单的看了一下给的模板,一个是boxImg.js,另一个是Viewer.js. 问题 其实图片预览的插 ...

  9. Linux命令——cat、more、less、head、tail

    cat 一次显示整个文件 -n:显示行号 -b :和 -n 相似,只不过对于空白行不编号 -s:当遇到有连续两行以上的空白行,就代换为一行的空白行 -E显示换行符 [root@localhost ~] ...

  10. <转载>c++中new一个二维数组

    原文连接 在c++中定义一个二维数组时有多种方式,下面是几种定义方式的说明:其中dataType 表示数据类型,如int  byte  long... 1.dataType (*num)[n] = n ...