通过对比Servlet、JSP、SSH、SSM简单介绍MVC模式

通过对比JSP、SSH、SSM简单介绍MVC模式

什么是MVC模式?MVC模式把交互系统的组成分解成模型(Model)、视图(View)、控制器(Controller)三种部件。它强制性地使应用程序的输入、处理和输出分开。为什么要使用MVC模式,他有什么进步的思想,他在日常框架中有什么应用?通过下面简单的对比,希望能给你答案。


JSP与servlet:

**什么是JSP?**JSP(Java Server Pages)是Sun 公司指定的一种服务器端动态页面技术的组件规范,Jsp是以“.jsp”为后缀的文件,在该文件中主要是html 和少量的java 代码。jsp 文件在容器中会转换成Servlet中执行。

**什么是servlet?**Servlet (Server Applet)是Sun公司指定的一种用来扩展Web服务器功能的组件规范,属于服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

jsp就是在html里面写java代码,servlet就是在java里面写html代码

这两者的区别和联系有很多点,本篇文章目的是为了探讨**“为什么jsp相对于servlet更加进步”**这一问题,因此不多赘述。在此给出我自己的答案:

要想使用servlet必须把它放在特定位置而且必须对其映射配置。jsp可以放在和html同样位置(webapps根目录下或者webapps根目录下的子目录下)而且不需要配置,可以直接使用。

在此我们讲讲MVC模式的提出:Servlet 解决了业务逻辑的问题,但是通过字符串拼接的方式生成动态的Html 页面,会导致代码臃肿,难以维护。JSP的业务逻辑大量且复杂,后期业务改变,修改JSP会很麻烦。MVC模式将软件系统分层,双剑合璧,JSP负责View显示界面,servlet负责Controller负责转发请求,对请求进行处理。发挥各自的优势,整体架构更加清晰,可维护性更高。

文章参考:点击查看


JSP与SSH:

SSH为Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架。

Structs主要采用Servlet和JSP技术实现,分别对应Controller层和View层。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,承担Model的角色。Model层包括Service层和DAO层,Service层处理Controller层转发过来的一些数据,DAO层的实现有所不同:JSP使用原生JDBC,返回字符串,返回字符串,返回字符串。这是违反面向对象思想的,Hibernate返回的是对象。虽然需要一定的处理,但是这个思想相对于字符串,更加符合广大程序员的思维。

那Spring是干嘛的?为什么在MVC的分工中它显得毫无作用?如果真的没有作用,为什么Spring在各种项目中有如此高的生命力?其实,Spring 提供了管理业务对象的一致方法,并鼓励注入对接口编程而不是对类编程的良好习惯,使我们的产品在最大程度上解耦。有机会我们找一篇文章总结一下Spring的核心思想IoC(控制反转)和AOP(面向切面编程),想看的可以评论或者私信,也推荐自行检索。

文章参考:点击查看


SSH与SSM:

按照惯例,什么是SSM?SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

SpringMVC相当于SSH框架中struts,负责View和Controller。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis作为Model层,其中的DAO层依然是对JDBC进行封装。这里看似是走了回头路,但其实MyBatis除了几乎避免了所有JDBC代码和手动设置参数之外,还可以使用简单的XML或注解来配置数据库中的记录,转换成更符合面向对象思想的接口、原生类型和POJO(Plain Old Java Objects,普通老式 Java 对象)。

相对于JDBC,MyBatis更符合面向对象思想;相对于Hibernate,也不需要用HQL,学习门槛更低。

文章参考:点击查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一张话痨帆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值