JavaEE成长之路
前言
反思
推荐做笔记工具
Java基础
idea这个集成开发工具。即使我们的视频都是使用eclipse,但是Intellij idea的风势越来越大,用起来也很好用,只不过有点难上手而已。
Web前端基础
在学习完Java基础之后,我建议直接去学习Web前段的基础HTML、CSS和JavaScript。
因为Java基础都是面对一个命令行窗口或者我们IDE的输出窗口,太过无聊了,我们得学习些见效快的东西。
参考视频:
一、韩顺平HTML+CSS【讲得比较细,可以加速观看的视频速度】
二、韩顺平JavaScript【讲得比较细,可以加速观看的视频速度】
参考书籍:
HTML5+CSS3疯狂讲义
参考网站:
w3c
在学完此阶段上,我们就会理解到HTML是名词,CSS是形容词,JavaScript是动词这么一个比喻。
XML
在学习完Web前端之后,我们知道了HTML的概念,而XML是HTML的升级,但是XML是用来传输数据的【它本身是希望既能够做页面展示,又能够传输数据,可是我们觉得它做页面展示不好】。
XML解决了传输的数据是关系型数据的问题,并且是一种格式通用的传输数据文本,通常我们可以将它作为配置文件。接下来Servlet就是使用XML作为配置文件的。
参考视频:
韩顺平xml细讲【讲得比较细,可以加速观看的视频速度】
参考博文:
XML教程
Tomcat
在学习Servlet之前,我们得先学习一个中间件:Tomcat。这个是可以让我们写的页面能够被别人访问。在之前,我们写的HTML都仅仅是自己机器上的访问,我们写出来的东西当然是想被别人访问的,只要把写的东西放在Tomcat这么一个中间件上,就能够被别人访问到了(局域网)。
而Tomcat也是装载着Servlet和JSP的一个容器,是非常适合我们学习的。
参考视频:
方立勋JavaWeb教程
参考博文:
Tomcat基础知识
Servlet与JSP
在学习Servlet之前,要看看HTTP协议的基本知识,了解HTTP的消息头。
市面上很多书籍都是先讲JSP,再讲Servlet的,其实我认为我们先要学Servlet,再学JSP。
Servlet其实就是一个Java类,只是这个Java类被称作是Servlet这样高大上的名称而已。由于Servlet不适合做页面的输出,因此就诞生了JSP。JSP本质上就是Servlet的,因此我们只要把Servlet学好,JSP就很自然的懂了。
参考视频:
方立勋JavaWeb教程
参考书籍:
李兴华JavaWeb
JavaWeb王者归来【我认为这本书还是啰嗦了一点,很多输出到页面上的代码都是用Servlet来写,其实是没必要】
参考博文:
Servlet与JSP教程
Servlet和JSP要好好学,因为Servlet是JavaWeb最基础的部分了,后面所谓的框架本质上都是对Servlet进行包装的。只要把Servlet好好学了,那么理解后面的框架也就不难了,就很快可以上手。
Servlet知识点:
JSP知识点:
过滤器和监听器知识点:
JDBC与数据库
学到这里,我们就存储数据有这么几种方式
一、使用普通文件来存储数据
二、使用XML来存储数据
一般地,由于我们涉及到的数据量可能是很大的,普通的文件和XML能存储的数据量是远远不够支撑我们的数据。因此我们做项目都是将数据存储到数据库中的,所以我们要学习数据库的内容。
第一次接触数据库的话,我推荐是使用Mysql比较好,安装起来比较方便,配置没有那么麻烦。当然了,Oracle也顺带学学也不错。
参考视频:
方立勋JavaWeb教程
传智播客32期中Oracle教程
李兴华Oracle
参考书籍:
SQL必知必会【这本书挺薄的,涵盖了数据库的所有知识,作为入门是不错的】
李兴华Oracle
参考博文:
数据库基础知识教程
Mysql命令图:
SQL知识点大纲图:
当我们知道如何使用SQL,了解数据库的基本用法之后,我们就可以去学习JDBC了。
JDBC其实翻译过来就是Java连接数据库的缩写。也就是说,Java通过程序接口来连接数据库!
JDBC参考视频:
方立勋JavaWeb教程
JDBC参考博文:
JDBC教程
JavaWeb小项目
到这个阶段,我们已经把所有的JavaWeb基础学完了,我们可以做几个小项目来练手练手
参考博文:
五个JavaWeb项目练手
参考视频:
方立勋JavaWeb教程
AJAX与JSON
做完几个JavaWeb小项目之后,我们会发现即使请求的是页面上一小部分的内容,我们还是使用Servlet返回整一个页面给浏览器。这样的话是非常耗费资源的,明明我们页面上其他的数据是不用动的。因此,我们接下来就要学习AJAX了。AJAX就是能够将一小部分的数据发送给我们的Servlet,Servlet处理完数据返回给页面也是一小部分,那么浏览器只要处理那小部分数据就行了!
Servlet返回的数据如果是非常简答的话,那么我们可以直接使用字符串即可了。如果返回的数据是带关系型的话,那么我们就要使用XML了。而XML数据又过于复杂化了,因此又出现了一种通用的传输技术-JSON
JSON其实也就是字符串,它可以被JavaScript语法解析,轻量级并且很方便解析。
参考视频:
王兴魁Ajax教程【这个教程有点老了,并且我个人不太喜欢那种风格】
传智播客32期Ajax章节视频
参考博文:
AJAX与JSON
Web前端库
在之前,我们一直用的是HTML、CSS、JavaScript来做简单的页面布局,但我们发现,如果每次都是从零开始写页面的话,那未免复杂了一点。
还有就是,我们在学习AJAX和处理XML的的时候就知道,浏览器的兼容性问题,IE和Chrome等浏览器处理方式可能是会不同的。
每次使用原生JavaScript的时候,代码量的也比较高...
基于上面的问题,我们就要开始学习一些简单的Web前端库了。首先就是我们的Jquery
Jquery是JavaScript的一个库,它封装了Javascpirt很多的功能,屏蔽了浏览器的兼容性问题,在使用AJAX的时候就十分地简单了。
在学习完Jquery之后,我们发现要对页面进行DOM操作就非常简单了。Jquery也提供了动画效果这样的接口供我们使用。
可是在页面上,还是需要我们从零开始写HTML、CSS代码呀。此时,我们就可以学习ESAY-UI,BootStrap这样的前端框架了。
对于我们学习过了Juqery而言,并且EASY-UI和BootStrap都是有中文的文档的,我们是非常容易上手的。
传智播客32期
Jquery参考书籍:
锋利Jquery
参考资料:
bootStrap中文网
EASYUI中文网
参考博文:
Web前端库
Struts2
在进入此阶段的时候,我们已经将所有JavaWeb基础都已经学完了,是时候去学习框架了。
在学习框架的时候,我们要明确我们为什么要学框架?比如,为什么我们要学习Struts2这个框架呢??
一、我们在页面上获取数据到Sevlet上的时候,如果我们要获取的参数有多个,那么我们就必须一个一个来进行获取(当然了,我们可以使用beanUtils)。
二、在文件上传的时候,我们又要使用SmartUpload或者FileUpload等上传组件,而且用起来也没有想象中那么方便
三、如果我们的功能比较多的话,那么我们的编写Servlet的次数是会非常多的,并且Servlet上的很多代码其实也是重复的。
Struts2框架是针对我们的Controller控制层的,也就是Servlet处理那模块的。
基于上面几种原因,我们就需要学习框架来帮我们管理一些重复性的代码,这样就能够提高我们的开发效率。
参考视频:
传智播客Java32期
参考博文:
参考书籍:
JavaWeb王者归来
Hibernate
学完了Controller层的框架,我们接下来学习Dao层的框架了。
我们Dao层中经历了这么的阶段
一、原生JDBC
二、JDBCUtils框架
其实我们用JDBCUtils框架的时候,已经是用得非常爽了。可是如果你学习了Hibernate的话,那么就更加爽了!
Hibernate可以说是全自动实现ORM(对象映射数据库表)的一个框架,学习了它就不用我们写SQL语句来对数据库进行操作了。
它里边封装了增删改查的方法,对应SQL中的insert、delete、select、update语句,用起来就很爽!
参考视频:
传智播客Java32期
参考博文:
Hibernate教程
参考书籍:
JavaWeb王者归来
JavaEE成长之路的更多相关文章
- redis成长之路——(二)
redis操作封装 针对这些常用结构,StackExchange.Redis已经做了一些封装,不过在实际应用场景中还必须添加一些功能,例如重试等 所以对一些常功能做了一些自行封装SERedisOper ...
- redis成长之路——(一)
为什么使用redis Redis适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就 ...
- 【腾讯Bugly干货分享】JSPatch 成长之路
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/579efa7083355a9a57a1ac5b Dev Club 是一个交流移动 ...
- redis成长之路——(七)
扩展性封装 虽说现在StackExchange.Redis免费,万一到时候和servicestack.redis一样要收费呢,所以先留一口,后续的可以再处理 实例代码点击这里查看 redis成长之路- ...
- redis成长之路——(六)
redis配置 为了码农在代码上只关心业务以及代码上的统一性,wenli.drive.redis内部使用配置来完成那些不同的场景,也就是说随便填填配置就能适应不同的场景! 当然配置多了码农也会受不了, ...
- redis成长之路——(五)
单例.哨兵.Cluster redis应用广泛,主要体现于实际场景的可用化,但是对于码农来说初步入手很多理念难以理解:码农的想法就是:为什么我要管那么多,我只想用,能用就行!所以必须将三个场景透明化. ...
- redis成长之路——(三)
redis连接封装 StackExchange.Redis中有一些常功能是不在database对中,例如发布订阅.获取全部key(本代码中已封装到operation中了)等,而且StackExchan ...
- redis成长之路——(四)
加强redis连接的连接池 虽然StackExchange.Redis针对连接已经做了很多工作,不过在实际应用场景中还是不够的,比如多实例的vip就会导致只能连到其中一个实例上等:本实例中的连接池只能 ...
- java 成长之路[轉載u]
分享总结title: java 成长之路tags:grammar_cjkRuby: true 经验差异 1-3年 要求 建议 3-5年 建议 5年+ 经验差异 最近一年比较忙,经历了创业公司的倒闭.这 ...
随机推荐
- Python 字典和集合
泛映射类型 collections.abc 模块中有 Mapping 和 MutableMapping 这两个抽象基类,它们的作用是为 dict 和其他类似的类型定义形式接口(在Python 2.6 ...
- JavaScript 加号运算符详解
将介绍JavaScript中 '+'加号运算符在一元.二元运算时的表现. 目录 1.一元运算符 2. 二元运算符 1. 一元运算符 语法: + Expression 说明:'+'号运算符作为一元运算符 ...
- jFreeChart利用CategoryDatase,ChartFactory.createBarChart生成的柱状图
package com.potevio.rnd; import java.io.File; import java.io.FileNotFoundException; import java.io.F ...
- 【Centos7】hostnamectl 设置主机名
Centos7中提供了设置主机名的工具 hostnamectl hostname有三种状态 static(永久) transient(瞬态) pretty (灵活) 查看主机名状态 [oracle@h ...
- ubuntu常见错误--Could not get lock /var/lib/dpkg/lock解决
通过终端安装程序sudo apt-get install xxx时出错: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource t ...
- 【VMware Workstation】虚拟机动态IP NAT连接外部网络(局域网以及广域网)
由于公司办公使用的账号认证获得IP,在虚拟机使用原来的桥接模式无法连接外网,因而需要更换虚拟机的网络连接方式. 虚拟机软件:VMware Workstation 12 Pro 虚拟机:centos7 ...
- 《HelloGitHub》第 17 期
公告 本月 hellogitub.com 动态 服务器迁移到了国内,国内浏览速度有了质的飞跃. 代码重构 项目 运行更加简单,直接 clone.执行安装依赖命令.运行 上线了"我的收藏&qu ...
- UEditor编辑器第一次赋值失败的解决方法
网上查了很多方式都不是很好用,最后想到了这样的处理方式 首先在js中定义一个全局变量 var ue = null; 然后在初始化显示编辑器的时候js这样写 if (ue == null) { ue = ...
- JSP知识点大致介绍1
解释:当jsp写好,运行服务器,还没有发出请求(写网址按Enter),Tomcat的work下是没有字节码文件的.当写网址:localhost:8888/xxxx/index.jsp按Enter,运行 ...
- postman 第4节 切换环境和设置读取变量(转)
postman提供了environment管理功能,想要在多个环境中测试,比如在测试环境.灰度环境.生产环境等,只需要用同样的接口,切换下环境即可,非常方便.具体步骤: 切换环境 1.点击界面右上角的 ...