首页 > 编程语言 > 详细

Spring MVC【入门】

时间:2019-05-31 13:23:30      阅读:103      评论:0      收藏:0      [点我收藏+]

MVC 设计概述

在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1:

 
技术分享图片
  • 出现的弊端:
  • JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起
  • 要求开发者不仅要掌握 Java ,还要有高超的前端水平
  • 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试
  • 代码难以复用

正因为上面的种种弊端,所以很快这种方式就被 Servlet + JSP + Java Bean 所替代了,早期的 MVC 模型(Model2)就像下图这样:

 
技术分享图片

首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式。

  • M 代表 模型(Model)
    模型是什么呢? 模型就是数据,就是 dao,bean
  • V 代表 视图(View)
    视图是什么呢? 就是网页, JSP,用来展示模型中的数据
  • C 代表 控制器(controller)
    控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。

让我们来写一下我们的第一个 Spring MVC 程序:

扩展阅读:Web开发模式

Spring MVC 的架构

为解决持久层中一直未处理好的数据库事务的编程,又为了迎合 NoSQL 的强势崛起,Spring MVC 给出了方案:

 
技术分享图片
 

传统的模型层被拆分为了业务层(Service)和数据访问层(DAO,Data Access Object)。 在 Service 下可以通过 Spring 的声明式事务操作数据访问层,而在业务层上还允许我们访问 NoSQL ,这样就能够满足异军突起的 NoSQL 的使用了,它可以大大提高互联网系统的性能。

  • 特点:
    结构松散,几乎可以在 Spring MVC 中使用各类视图
    松耦合,各个模块分离
    与 Spring 无缝集成

示例:

1、在web.xml 配置一个DispatcherServlet 并且使用 
初始化参数 contextConfigLocation 关联容器对应的配置文件 

技术分享图片

可以<url-pattern>元素的值改为 / ,表示要拦截所有的请求,并交由Spring MVC的后台控制器来处理(也可以用*)

contextConfigLocation 关联容器对应的配置文件 也可以写到WebContent下面的WEB-INF下面,这个时候就不用再web.xml中配置初始化上下文配置,如果不配置,运行servers的时候,编译器会报这个异常,xml文件名字自定义可改

 

技术分享图片

 

2、编写netmk_web.xml(也就是异常报错说缺少dispatcher-servlet.xml,名字可自定义的哈)

开启基于标注 Spring MVC
开启组件扫描 <context:component-scan base-package="" /> 
开启mvc的标注 <mvc:annotation-driven /> 自动配置了一个HandlerMapping 

技术分享图片

3、编写一个普通的java类使用@Controller 把java类变成控制器
控制器方法的返回值可以是String也可以是 ModelAndView 

方法名任意参数任意 在控制器方法上加 @RequestMapping("/请求路径") 

 

技术分享图片

我这里创建了个实体类,使用了实体里面的属性

技术分享图片

 

4、在WEB-INF建立一个login.jsp

控制器接收请求数据

使用控制器接收参数往往是 Spring MVC 开发业务逻辑的第一步,为探索 Spring MVC 的传参方式,为此我们先来创建一个简单的表单用于提交数据:

 

 

技术分享图片

重启服务器之后

测试结果如下:

技术分享图片

技术分享图片

控制台显示:

技术分享图片

 

Spring MVC【入门】

原文:https://www.cnblogs.com/xss512/p/10954614.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!