Spring开篇--Servlet和jsp以及tomcat的关系

Servlet和Tomcat的关系:
  • servlet

    就是一个接口;接口就是规定了一些规范,使得一些具有某些共性的类都能实现这个接口,从而都遵循某些规范。有的人往往以为就是servlet直接处理客户端的http请求,其实并不是这样,servlet并不会去监听8080端口;直接与客户端打交道是“容器”,比如常用的tomcat。

  • Tomcat

    tomcat是实现了servlet接口的web容器,还有比如jetty,weblogic等。

    客户端的请求直接打到tomcat,它监听端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。

  • JSP

    在servlet和前端交互的时候,往往要将逻辑结果和HTML拼接返给前端(那是还没有前后端分离只说)。一般是通过HttpServletResponse输出。但是拼接太麻烦,所以就有了JSP,说白了就是html和java代码混合的页面模板。是一种java动态页面技术,可以翻译成页面最终返给前端。

从上面我么也可以看到java开发的演进过程,逐渐在向更细致的分工和更简洁的流程发展。所以后来很快出现了MVC模式,因为在jsp中写太多的代码和html混在一起,会显得很乱,很难维护。MVC模式下,controller负责初始业务数据,完成后将结果(Model)返给View,View将数据进行渲染返给前端进行展示。

但是mvc很快就暴露了许多问题。

在mvc模式下,dao层的实例需要每次都实例化。加大了GC的压力。

当然可以这样考虑:

1.考虑单例模式,但是单例模式面对众多的dao对象,仍然是一个耗时耗力操作。并且有大量重复的单例模板代码。使用的单利模式虽然从性能上有所提高,但是却加重了我们的开发成本。因此只会小规模的使用,例如我们操作JDBC的Utils对象等

2.创建一个池子,将用的对象放在池子里,用的时候取(类比数据库连接池)这个池子就是Spring容器。将接口实现类放入容器的管理过程即是Spring IOC依赖注入、控制反转

小结

所以Spring并不是凭空出现,而是在java原有技术框架开发遇到瓶颈,而产生的必然结果。Spring的许多优秀特性和实战用法,后续会持续更新。

Spring全家桶:

Spring是一个分层的javaEE应用一站式轻量级开源框架,以控制反转(IOC),和面向切面编程(AOP)为内核,提供了展现层SpringMvC,持久层SpringJDBC以及事务管理的众多企业级应用技术。另外Spring还整合了很多第三方框架和类库,几乎是java企业级开发的标准。

发展到今天,Spring家族已经非常壮大。包含了很多核心的项目,包括:

SpringBoot ,Spring Data, Spring Framework,Spring Cloud ,Spring Security…

我们如果谈起Spring,其实往往指的是Spring Framework。在此基础之上,Spring又针对不同的业务需求,开发了很多项目,诸如上边所列到的。

你可能感兴趣的:(springboot,spring)