JSP:
定义:Java Server Page,是一种动态页面技术,是一种使用java编程语言编写类XML的tags和scriplets,来封装产生动态网页的处理逻辑。
特性:JSP将网页逻辑和网页设计的显示分离,支持可重用的机遇组件的设计,使基于Web的应用程序的开发变得迅速和容易。它主要的目的是将表示逻辑从Servlet中分离出来。
因此在MVC模式之前,javaweb的实现技术主要依靠于JSP。
-
缺陷:
没有区分业务逻辑和展示逻辑,维护及后续开发拓展困难
主要依赖于后端服务器的生成,一旦需求量过大,则对服务器负担过大
代码耦合过重
当javaweb主要依靠jsp技术时,其完成流程为:
服务器接受用户请求,从而调用jsp文件,通过Servlet容器将jsp页面转换成Servlet小程序得到结果后,反馈给用户端的浏览器。
因此Servlet相当于一个控制层,在处理业务,而JSP存储了很多代码,提供给Serlect进行处理。但是JSP主要是在进行页面展示,在JSP中放置太多代码不利于维护,因此之后出现了MVC模式,将JSP中的业务代码和展示代码进行区分。
MVC:Model View Controller,一种软件设计范式。
Model在java中指代业务逻辑层,业务逻辑是我们在java中写的实现方法,例如需求是完成学生考试登录系统,我们会写的业务逻辑就包括如何学生需要密码登录、学生有权查看考试成绩等的业务逻辑。而在java中业务逻辑的包一般是service
View 是视图层,javaweb开发中此处一般用jsp来代替简单的HTML文件
Controller是控制层,用以根据用户事件从Model中调用相应的数据,再传给视图层以便给用户展示。
基于JSP技术的web和MVC的区别
JSP的代码全部统一由后端服务器处理,不区分业务逻辑和展示逻辑
MVC通过M、V、C三个层次的划分,将业务逻辑和展示逻辑区别开,单一职责下每个层次仅仅完成自己所需要完成的部分,降低耦合性的同时,既有利于后期维护也方便开发拓展
两者的主要区别在于分层,分层是为了实现“高内聚,低耦合”。采用“分而治之”的思想,把问题划分开来各个解决,易于控制,延展和分配资源。