SpringMVC(第十一/十二章)

目录

11

11.1  Spring MVC概述

Spring MVC优点:

11.2  第一个Spring MVC应用

编程步骤

Spring MVC是:

12

12.1  DispatherServlet

12.2  Controller注解类型

12.3  RequestMapping注解类型

组合注解:

12.3.4 请求处理方法的参数类型和返回类型:

Spring MVC支持的常见方法返回类型:(1 5 6常见类型)

12.4  ViewResolver(视图解析器)见186页

12.5  应用案例

向页面传值


11

11.1  Spring MVC概述

Spring MVC优点:

1 是Spring框架一部分,可使用Spring中的功能。

2 灵活,可与其他框架通用。

3 提供的前端控制器DispatcherServlet,使开发人员无需额外开发控制器对象。(不理解)

4 可自动绑定用户输入,并能正确的转换数据类型。(不理解)

5 内置常见校验器,可以校验用户输入,如果不能通过,则重定向到输入表单。(不理解)

6 支持国际化,可根据用户区域显示多国语言。(不理解)

7 使用基于xml的配置文件,在编辑后,不需要重新编译程序。(不理解)

8 支持多种视图技术,比如jsp, velocity,freemarker等。

11.2  第一个Spring MVC应用

编程步骤

1 导包

2 添加配置文件

3 配置DispatcherServlet

 元素值为1则表示应用程序启动时会立即加载该Servlet,若不存在则应用程序在第一个Servlet请求时加载该Servlet。(不理解)

配置文件的位置若配置了则在应用程序启动时加载,没有配置则默认在web-inf

目录下寻找servletname-servlet.xml命名方式的配置文件(如

Springmvc-servlet.xml)。

4 写Controller(处理器),实现Controller接口,并重写handleRequest()。(这里使用Controller接口的方式开发一个控制器)

5 配置配置文件,配置控制器的信息。

---在Spring容器的配置文件中,添加HandlerMapping的配置信息。

---在Spring的配置文件中,配置Controller(即配置bean对象)。

---在Spring配置文件中,配置视图解析器ViewResolver。

6 写jsp,即视图页面

详见188页。

11.3  Spring MVC的工作流程

见课本177页。

Spring MVC是:

是一个MVC框架,是用来简化基于MVC架构的WEB应用开发。

五大组件:

1 DispatcherServlet(前端控制器)

  --接受请求,依据HandlerMapping的配置信息调用相应的模型。

2 HandlerMapping(处理器映射器)

  --包含了请求路径与模型对应关系。

3 Controller(处理器/模型)

  --负责处理业务逻辑。

4 ModelAndView

  --封装了处理结果。注意:处理结果除了数据之外,还可能有视图名。

5 ViewResolver

  --DispatcherServlet依据ViewResolver的解析结果,调用真的视图对象来生成相应的页面。

12

12.1  DispatherServlet

充当前端控制器的角色,见11.2编程步骤第3条。

12.2  Controller注解类型

指示Spring类的实例是一个控制器,作用与实现Controller接口一样。

写法:

--在类上面添加@Controller注解

--通过Spring的扫描机制找到标注了该注解的控制器即可(实现此效果需要在配置文件中添加相应的扫描配置信息步骤:1在配置文件的声明中引入spring-context。 2使用元素指定需要扫描的包名,这样就会在此包下所有标注的注解的类都会被Spring处理)。

与实现接口写控制器的方法相比:此种简单(更常用),基于注解的控制器可同时处理多个(另种只能处理单一的请求动作),灵活。

12.3  RequestMapping注解类型

实现控制器内部对每个请求的控制,用于映射一个请求/方法。

写法:在方法/类上添加此注解。 

1标注在方法上,此方法会成为一个请求处理方法,它会在程序接收到对应的url请求时被调用。

2 标注在类上,类中的多有方法将映射为相对于类级别的请求,表示该控制器所处理的所有请求都被映射到value属性值所指定的路径下。

请求访问时需改路径,类中所有方法都需在请求路径中添加。

此注解的属性:见183页

组合注解:

--作用:简化常用http映射,更好表达被注解方法的语义。

@Get/Post/Put/Delete/@PatchMapping:匹配Get/Post/Put/Delete/@Patch方式的请求。

12.3.4 请求处理方法的参数类型和返回类型:

每一个请求处理方法可有不同类型的参数,和一个多种类型的返回结果。

Spring MVC支持的常见方法返回类型:(1 5 6常见类型)

1 ModelAndView(可添加Model数据并指定视图,但不能实现数据与视图间的解耦)

2 Model

3 Map

4 view

5 String(常用,其类型的返回值可跳转视图但不能携带数据,那怎么在方法中将数据带入视图页面?见答5。也可进行重定向与请求转发,见答6。)

6 void(主要在异步请求时使用,只返回数据不跳转视图)

7 HttpEntity<T>ResponseEntity

8 Callable<V>DeferredResult

答5:

答6:redirect重定向

forward请求转发

12.4  ViewResolver(视图解析器)见186页

12.5  应用案例

精确匹配:比如/user/login.html 此中一个请求路径对应一个servlet,很复杂,需要写大量配置文件。

扩展名匹配(后缀):*.do

路径匹配:/或/*  什么意思

1同步请求对象Request

参数值要与请求参数名一致

Request.getParameter(username);

2通过@RequestParam()注解

a可以通过形参名与请求参数名一致,来获取请求参数。

b为了避免不一致,要将该注解添加在形参前面。

c该注解的参数是请求参数的名称。

例如:

3使用javaBean封装请求参数值

a写一个Java类, 私有属性名要与请求参数名一致,并提供相应的set get方法。

b将该JavaBean作为处理方法的形参。

向页面传值

1使用Request对象

a将数据绑定到 request对象,然后转发到jsp

bspringmvc默认使用的是转发

c在前端页面中,可以使用el表达式通过绑定名获取值。

2ModeAndView

a先将数据封装到了ModelAndView对象中,再将该对象作为方法的返回值,还要包含视图名。

b在前端页面使用el表达式获取。

3ModelMap

将该对象作为方法的参数,然后将数据绑定到该对象上。

4Session

将该对象作为方法的参数,然后将数据绑定到该对象上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值