如何学习各种框架,如何学习javaweb
java各种框架涉及的知识点太多了,项目中用到了倒是会用,但是对于原理则一脸懵比。甚至连为什么要用框架也一知半解,最基本的servlet也知道的不深入,对它在其中发挥的作用更是了解的晕晕乎乎的。就有一种站在山脚看哪哪都是山的迷茫感,真心难受。
改正一下学习方式,站在山顶看一下,最起码知道我们为什么要用这些框架?没有这些框架之前我们是怎么做的?框架封装了那些重要的基础操作?还需要学习哪些javaWeb基础知识,这些知识在框架中的地位如何?是如何工作的?然后再一点点攻克细节!需要重视的是,前端工具也越来越强大了,不能停止学习,不能狭隘!
从以下几个方面入手(还不太确定):
- JavaWeb发展史
- 不同框架的作用及优点(Spring,MVC框架,ORM框架)
- 其中必须要掌握的基础知识(工作原理,框架如何封装的)
- 框架的更多使用与原理的学习
JavaWeb发展史
1.web的出现:
最初的web在1991年出现,目的是为了实现计算机之间的信息共享与传递的,即TCP/IP协议将计算机连接在一起,而Web则在其之上,进一步将计算机的信息资源连接在一起。
Web设计初衷是一个静态信息资源发布媒介,通过超文本标记语言(HTML)描述信息资源,通过统一资源标识符(URL)定位信息资源,通过超文本转移协议(HTTP)请求信息资源。【要掌握web必须理解,这是重点基础】
2.纯静态页面:
最初的时候,浏览器端展示的只有静态的文本或图像信息。实现原理就是将静态的网页存储在服务器中的一个特定目录的文件下面,然后接受到客户端的请求时,去该目录下寻找对应的HTML文件返回。
3.动态内容的出现--CGI:
为满足人们对动态内容的需求,出现了CGI【like servlet】。CGI定义了Web服务器与外部应用程序之间的通信接口标准,因此程序员可以通过编写需要的符合CGI规范的代码,接受web服务器发来的请求,并为Web请求生成动态内容(执行动态逻辑,输出结合了动态处理结果的静态的HTML内容-->大量HTML代码)返回给服务器,进而返回给用户。
而CGI对每个请求都会启动一个进程来处理,因此性能上的扩展性不高。而编写CGI程序当时主要是Perl和C等语言,会在程序中输出大片的HTML字符串,可读性和维护性是个大问题。【这样代码看起来很糟糕】
为了处理更复杂的应用,一种方法是把HTML返回中固定的部分存起来,即一个返回的HTML模板,为动态的结果预留位置,Web请求处理的时候,程序先处理动态请求得到结果,再把模版读入进来,把结果填充到预留位置中,形成最终返回的HTML页面。【感觉就是将CGI时期的大片HTML代码封装成模板了而已,我们仍然是需要手工将动态执行结果嵌入HTML中】
4.Web编程脚本语言--PHP/JSP/ASP:
在上面说到的模板方法中,仍然是需要繁琐的人工编写代码嵌入HTML模板中,PHP(1994)的出现就代替了这种人工操作。PHP可以把程序(动态内容)嵌入到HTML(模版)中去执行,执行过程为:web服务器(Apache)接收到用户请求,判断该请求是php请求后,交给PHP执行引擎去执行,将执行结果即一个HTML页面,返回给服务器,进而返回给用户。
而后,出现了ASP(1996)和JSP(1998),本质上也都可以看成是一种支持某种脚本语言编程(分别是VB和Java)的模版引擎。并且在1996年时,W3C发布了CSS1.0规范。CSS允许开发者用外联的样式表来取代难以维护的内嵌样式,而不需要逐个去修改HTML元素,这让HTML页面更加容易创建和维护。
此时,有了这些脚本语言,搭配上后端的数据库技术,Web已经从一个静态资源分享媒介真正变为了一个分布式的计算平台了。【这样看来,开发web项目并不局限于某种语言,只要了解实现原理,用啥语言都OK的。】
5.分布式企业计算平台--J2EE/.Net:
随着Web的广泛应用时,在分布式、安全性、事务性等方面的要求催生了J2EE(现在已更名为Java EE)平台在1999年的诞生,从那时开始为企业应用提供支撑平台的各种应用服务器也开始出现了。【这里需要了解那时的的javaEE是如何实现的,又是如何在分布式、安全性、事务性上体现的。】
Java EE中,定义了其核心规范,包括:Java Servlet、Java Server Pages (JSP)和Enterprise Java Bean (EJB ),Servlet和JSP是运行在服务器端的Web组件,EJB运行在服务器端的业务组件,是一种分布式组件技术。【EJB的相关知识了解】
6.各种框架--全栈、MVC、ORM:
面对及其复杂的web项目,为了提高项目的可维护性与可扩展性,简化开发人员的工作,越来越多的框架被设计实现出来,并且得到广泛的应用。
框架包括全栈框架如Spring,MVC框架如structs与SpringMVC,ORM框架如Hibernate与Mybatis。它们在web项目中有各自的分工,通过Spring将他们整合起来。
(此外,前端技术也在不断进步,还需学习再加进来)