springMvc和servlet的优缺点

个人的理解:

一、首先说mvc和单独一个servlet的区别:

如果我的tomcat服务器要实现一个功能,比如说接收一个请求,从数据库里查出一条用户信息(select),然后返回到服务器,那么不用mvc的方法是:

只有一个servlet也可以实现,自定义一个servlet,在tomcat的web.xml的中注册,接收 /select 请求,在servlet里手写实现jdbc接口连接数据库完成查询,得到response的输出流,把查询结果write到页面上。这样耦合度很高,向页面上写response也很麻烦。

使用mvc模式可以降低耦合度,jsp也可以简化输出的过程。Controller层的servlet接受请求信息,调用Model层的Dao的方法实现与数据库的连接、查询,将查到的数据利用View层jsp技术显示给用户。

二、为什么要用springmvc:

这时候要再实现几个功能,向数据库中添加用户(insert),删除用户(delete),更改用户(update)等等功能,如果传统mvc模式怎么做?

(一)写几个新的servlet。然后在web.xml中注册新sevlet,并映射对应的/insert /delete /update /XXX,在这些新的servlet中调用View和Model层完成功能。

这样新定义servlet的方法比较麻烦,要去继承HttpServlet接口,实现接口方法,手写调用jsp的重定向或者请求转发,还要再web.xml中注册。

(二)直接在原来的servlet中添加方法。然后把web.xml中原来的/select改成 / 来映射所有请求,在原来的servlet中加入判断,不同的请求执行不同的方法。

这第(二)种实现方法,仔细想一想,是不是和springmvc就有点像了?这时这仅有一个的servlet就对应着springmvc中的DispatcherServlet,我们写的实现这些功能的方法就对应着springmvc中我们要写的很多controller,我们在servlet中写的判断,springmvc就通过处理器映射器、处理器适配器这两大组件帮我们实现了。即:

我们写的单一的servlet------------------------>springmvc的DispatcherServlet

我们servlet里的判断语句---------------------->处理器映射器,处理器适配器

我们servlet里的方法----------------------------->各种controller

三、总结

springmvc框架三大组件(DispatcherServlet,处理器映射器,处理器适配器)就是一个可以处理多种请求的强大的servlet。它长这样:

public class DispatcherServlet implements Servlet{undefined

//main方法

public void main{undefined

if(映射器说要执行A){undefined

this.controllerA();

}

if(映射器判断要执行B){undefined

this.controllerB();

}

//Controller就是各种方法

public XXX controllerA(){ }

public XXX controllerB(){ }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值