JavaWeb学习路线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb学习路线相关的知识,希望对你有一定的参考价值。
JavaWeb核心框架
持久层框架:Hibernate、iBATIS
表现层框架:Struts1、Struts2
业务层框架:Spring
java学习路线图:
1、Hibernate:ORM
Hibernate是一个Java ORM开发框架
ORM是Object Relation Mapping的缩写,顾名思义,即对象关系映射。
ORM是一种以面向对象的方式来进行数据库操作的技术。Web开发中常用的语言,都会有对应的ORM框架。而Hibernate就是Java开发中一种常用ORM框架,另一个现在流行的ORM框架是Mybatis。
为什么需要ORM框架?
简单地理解,通过Java进行数据库访问的正常流程可以分为以下几步:
准备好SQL语句
调用JDBC的API传入SQL语句,设置参数
解析JDBC返回的结果
这个过程实际上非常麻烦,比如:
在Java代码中拼接SQL非常麻烦,而且易于出错
JDBC的代码调用有很多重复性的代码
从JDBC返回的结果转换成领域模型的Java对象很繁琐
而使用ORM框架,则可以让我们用面向对象的方式来操作数据库,比如通过一个简单的函数调用就完成上面整个流程,直接返回映射为Java对象的结果。这个流程中很大一部分工作其实可以交给ORM自动化地帮我们执行。对,类似MVC框架,ORM框架会帮你处理好相关的繁琐事情!
2. Struts:MVC
Struts是一个Java Web MVC开发框架。MVC早在1978年就作为Smalltalk的一种设计模式被提出来了,引用到Web应用中来时:
模型Model用于封装与业务逻辑相关的数据和数据处理方法
视图View是数据的html展现
控制器Controller负责响应请求,协调Model和View
Model,View和Controller的分开,是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。
MVC开发模式下,Java Web开发会遇到URL路由、模板渲染、表单绑定/提交/验证、Session封装、权限验证、国际化等一系列通用的问题,而MVC框架会将这些通用问题都封装进框架中,你在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就能帮你处理好一切,可以极大地简化代码。
3.Spring:DI/AOP
Spring对应的关键词是DI(依赖注入)与AOP(面向切面编程),可以认为是一个以DI和AOP为核心Java Web一站式的集成(粘合)框架。
其中DI也称为IoC(控制发转)用于管理Java对象之间的依赖关系(一定要说DI是IoC实现方式的童鞋们见评论区),AOP用于解耦业务代码和公共服务代码(如日志,安全,事务等)。DI和AOP能够让代码更加简单,具有良好的松耦合特性和可测试性,极大地简化开发。理解这两者是使用Spring框架的基础。
Spring框架对Java企业应用开发中的各类通用问题都进行了良好的抽象,因此也能够把应用各个层次所涉及的特定的功能和开发框架(如接下来要说的MVC框架、ORM框架)方便得组合到一起(这也得益于依赖注入和面向切面编程带来的强大功能)。Spring是一个极其优秀的一站式的Full-Stack集成框架,因此基于Spring核心,对Java应用开发中的各类通用问题几乎都提供了针对性的开发框架,比如你耳熟能详(如果你对这个问题感兴趣的话)的Spring MVC,Spring Data。
Java曾经有另外一个类似的一站式框架粘合框架Seam,这是Hibernate的作者、脾气火爆的大神Gavin King的作品,核心是基于依赖注入来黏合JSF和EJB,不过推出时Spring已经大杀四方,Seam基本已经退出历史舞台了。记得Seam提过一个我认为很不错的概念:“双向注入”,类似现在前端框架中的双向绑定,当时来说还是很超前的。
Web前端开发学什么?对于刚刚准备想进入web前端的同学来说,可能只知道web前端开发前景好,薪资高,但是很多人都不知道要从事web前端要学会哪些技术,如今,移动开发的发展依旧如火如荼,企业对于Web前端人才需求产生了巨大的缺口,从事Web前端开发的程序员们则是其中较大的获益者。Web前端的广泛运用,造就了本身的优势。现在学习Web前端是绝佳时期,抓住机会,拿高薪进名企就不再是问题。那么想学好这门技术,需要学习哪些内容呢?如果想系统的学习前端,可以来我这看看
第1阶段:前端页面重构
PC端网站布局项目、HTML5+CSS3基础项目、WebApp页面布局项目
第2阶段:javascript高级程序设计
原生JavaScript交互功能开发、面向对象进阶与ES5/ES6应用项目、JavaScript工具库自主研发项目
第3阶段:PC端全栈项目开发
jQuery经典交互特效开发、HTTP协议、Ajax进阶与php/JAVA开发项目、前端工程化与模块化应用项目、PC端网站开发项目、PC端管理信息系统前端开发项目
第4阶段:移动端项目开发
Touch端项目、微信场景项目、应用Angular+Ionic开发WebApp项目、应用Vue.js开发WebApp项目、应用React.js开发WebApp项目
第5阶段:混合(Hybrid,ReactNative)开发
微信小程序开发、ReactNative、各类混合应用开发
第6阶段:NodeJS全栈开发
WebApp后端系统开发、一、NodeJS基础与NodeJS核心模块二、Express三、noSQL数据库
第7阶段:大数据可视化
大数据可视化化基础与实战、一、数据可视化入门、二、D3.js详解、三、其他JS库
希望对您有所帮助!~
参考技术C Java web需要学习的内容大致可以有以下这些web基础:TOMCAT/WEB程序结构/HTTP协议 Servlet基础入门、servlet作用域(cookie、session、ServletContext)、 Cookie和Session 、Servlet的交互/JSP原理及运用、 JavaBean/EL/JSTL/MVC思想 、JSP+Servlet+JDBC综合练习、Session购物车案例/验证码/防止表单重复提交、监听器过滤器
第三方工具包:连接池、事务、分页、文件上传下载、Dom4j/Log4j/Log back
JavaScript和jQuery框架技术:JS入门和DOM基础 、DOM模型深入 、jQ基础、 jQ操作DOM
MVC动态Web开发技术:自定义MVC框架、DAO框架、前端框架(layUI)
Web开发高级运用:tomcat server服务器配置 、nginx使用、 jetty配置
网络编程:网络原理、HTTP协议基础、Linux操作系统、云服务搭建 参考技术D 学习顺序
1、java语法,语法很重要,没有这个根本后面的也进行不下去,建议先学会应用了再去研究jdk源码,本身就是新手就想从原理开始了解,估计非常吃力,效果也不一定好。
2、数据库,首先学关系型数据库,通常的选择有mysql和oracle,我建议先学mysql,相比oracle要简单,同样 对于新手应用最重要,不要了解太深的。随便给个需求都能写出sql语句了再去研究深层次的也不晚。
3、jdbc,虽然现在没有企业用jdbc做开发了,但是我们仍然要学,因为其他的持久层框架都是对jdbc的封装,而且jdbc本身的应用不难,学会写配置文件,读取,连接及常规的增删改查的操作就可以了,无需深入研究。
4、前端基础,虽然我们是做后台的,而且现在很多都是前后端分离了,但并不能只会java,前端的常规操作也是要会的,毕竟我们在学习过程中是没有前端和我们对接的,从页面到后台到数据库都是自己在做,其中JavaScript和jQuery我建议不要把重点放在JavaScript上,为了简便 快速开发用jQuery会方便很多。
5、jsp,servlet,学javaweb的都要学的 这里就不过多解释了,尤其是servlet。
6、mybatis,前面说了jdbc是底层的,mybatis就对jdbc进行了封装了。mybatis是一个半自动的orm框架,常用的还有hibernate,建议先学mybatis,hibernate学习成本较mybatis要高,具体封装了有哪些好处可自行查资料,这里就不一一列出了。
7、spring和springmvc,现在企业级开发中流行的框架,虽然现在Springboot越来越流行,不需要你自己配一个框架,但是spring的IOC,DI,aop还是不得不学的,而且懂得了springmvc后 知道整个框架工作流程和原理,有益于自己解决问题。
8、maven,maven的核心是pom,英文是Project Object Model,翻译成中文就是项目对象模型,咱们java中说的一切皆对象在这里maven把项目也当成一个对象来管理了。相比于我们做一个动态web工程,构建项目要方便得多。
9、Springboot,Springboot相比于我们自己配一个框架减少了大量的xml配置,用起来非常友好,有一种开箱即用,拎包入住的感觉把重心放在了业务上。
10、Git:世界上最先进的分布式版本控制系统,建议所有初学者从命令行开始使用 Git。如果以上的都学完并且能应用,能做出一个小项目了 那就算入门了,接下来可以学学Redis,Dubbo,zookeeper,Linux等等拓展自己的技术,或者是把前面我讲的技术深入研究下,技术的深度和广度都很重要,可以自己选择。
JavaWeb的学习路线
一、首先要学习基本的语法知识。
例如,基本数据类型
(byte、float、int、long、double、Boolean、char、等等),引用类型。
流程控制
分支语句(if--else--if、switch)、循环语句(while、do--while、for)。
数组
定义数组, int[] arr ; 用new关键字创建数组(arr = new int[9];),等等方法定义数组。
for循环遍历数组,数组的冒泡排序,冒泡排序,等。
面向对象
封装(提高代码的复用性),多态(同一个行为具有多个不同表现形式或形态的能力。),继承(extends),抽象(abstract,一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。),接口(interface),static,final。
二、学习数据库(使web中的数据进行持久化操作)
例如,MySQL,Oracle,最基本的增删改查, create 命令创建数据库,drop database <数据库名>,INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ),select * from Tablename.
JDBC,知道并了解JDBC的作用?
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 JDBC也是Sun Microsystems的商标。 JDBC是面向关系型数据库的。菜鸟教程详情:http://www.runoob.com/w3cnote/jdbc-use-guide.html。
三、了解 B/S、C/S 结构
B/S,即 Browser/Server,浏览器/服务器模式。
C/S,即 client/server 客户端/服务器模式。
掌握 Servlet 接受请求,响应数据,Filter 拦截请求,Lintener 监听者 的工作原理。
四、了解URL(统一资源定位器),HTTP,HTTPS,TCP/IP。
在浏览器的输入框中输入URL,通过浏览器对之进行解析,解析为IP地址,例如:
在浏览器中输入:www.baidu.com,和输入:61.135.169.121,效果一样。
所以在浏览器中,会将URL(统一资源定位器)解析为IP地址,并通过IP访问服务器。
五、学会HTML,Javascript,CSS
HTML了解并会使用一次些常见的标签,例如<input type= "text" name="input"/>,等常见标签,熟练使用。
因为基于B/S模式开发的有很多,所以需要熟练掌握这三种语言。
Bootstrap,如果CSS掌握的不错,此时使用这种框架将会使你的开发锦上添花,用极少量的代码就可以搭建出非常航酷炫的特效。
因为浏览器只会识别这三种语言,并进行渲染。
六、最好也好一点JQuery,这个库还是能帮你做很多很多的。虽然现在很多“大牛”对jQuery不屑一顾,但是不可否认,这个东西用的人太多了。
Jquery是一个JavaScript库,可以极大的精简JavaScript的编程体验。
关于JQuery,的各种语法,可以点击菜鸟教程Jquery语法教学区:http://www.runoob.com/jquery/jquery-tutorial.html
七、学会一些框架
SpringMVC,SSH,SSM等,这会节省大量时间。
一句话,Spring是一个开发应用框架,什么样的框架呢,有这么几个标签:轻量级
、非侵入式
、一站式
、模块化
,其目的是用于简化企业级应用程序开发。
就是Spring能帮助我们快速简单的实现各种功能。熟练掌握并运用Spring框架,会在以后的开发中受益良多。
八、做一个Demo,并通过Demo进行查漏补缺,最后独立完成一个项目。
在此附一张JavaWeb的学习流程图:
以上是关于JavaWeb学习路线的主要内容,如果未能解决你的问题,请参考以下文章