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库
希望对您有所帮助!~
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操作系统、云服务搭建
2020-10-15 · IT、电竞电商、设计、动漫专业对口升学
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等等拓展自己的技术,或者是把前面我讲的技术深入研究下,技术的深度和广度都很重要,可以自己选择。