第一章 SpringMVC与JavaWeb的区别
1.1 什么是Spring
spring是一个技术框架,有两大特性IOC与AOP。
1.2 什么是MVC
mvc是一种编程思想,model: 模型 (代表java模型),view:视图(游览器) controller 控制层(负责接收请求)。mvc模型,意在简化代码开发,把不同业务逻辑的复杂关系解耦出来,使业务逻辑更加易于维护。
1.3 什么是javaweb
javaweb 是一个开发网站应用的技术框架,核心是Servlet,它负责处理客户端发送过来的请求并把处理的结果返回给客户端,整个web应用的请求都考一个Servlet完成。
javaweb完成一次请求的过程:
1 用户在游览器发起一个请求,这个请求将会来到服务器。
2 服务器接收到这个请求,根据URL路径找到对应的servlet对象。
3 servlet对象中的service方法处理请求,方法中的HttpServletRequest对象获取到客户端传输过来的参数,请求处理完成,通过HttpServletResponse对象返回给客户端。
javaweb中的jsp也是一个Servlet。
1.3 什么是SpringMVC
springmvc = spring+mvc ,springmvc是两个不同的东西结合在一起的web框架。
为什么说它是一个web框架呢,这两个技术里面没有web框架的技术啊?
原因是spring吸收了javaweb的设计思想,在spring与mvc之间加入了web技术。
springmvc加入了web的一个请求流程
与javaweb的一次web请求相比,springmvc要复杂的多,他们的区别如下
类型 | javaweb | springmvc |
---|---|---|
接收请求的对象 | 一个请求对应一个servlet对象 | 只有一个DispatcherServlet 负责接收所有的请求,对接收到的请求找到对应的对象进行处理 |
请求类型 | 调用对应的请求方法,如doGet() doPost() 等 | 通过处理器映射器实现 |
请求参数 | 只能是HttpServletRequest对象, 通过该对象的方法获取请求参数 | 可以是任意类型,如普通对象,集合对象等 |
返回结果 | 只能是HttpServletResponse对象,通过该对象的方法写入结果到游览器 | 可以是任意类型,如普通对象,集合对象等 |
视图 | 需要访问jsp文件(也就是Servlet对象) | 通过DispatcherServlet对象调用视图解析器返回对应的jsp文件 |
总结
通过以上的对比,是不是发现springmvc比javaweb好多了,举一个例子,如果要写一个接口,javaweb要写一个Servlet,然后在web.xml 配置映射,springmvc则写一个controller对象,标记为spring组件,然后在web.xml 中配置DispatcherServlet对象,该对象的参数为springmvc的配置与springIOC容器的配置。创建好之后,客户端的请求进来,javaweb直接响应servlet处理,而springmvc则DispatcherServlet对象调用对应的处理器映射器找到对应的controller对象。 虽然,springmvc的流程麻烦一点,但是,麻烦的事springmvc帮我们做了,我们只需要写对应的业务逻辑即可,轻轻松松写扩展应用。而javaweb 的流程简单,但处理业务非常麻烦,不易扩展。