SpringMVC的复习

一、SpringMVC中的组件

1、springMVC中的重要组件

1.1 前端控制器(DispatchServlet):中央处理器,所有的操作都由前端控制器进行分配

1.2 控制器映射器(HandlerMapping):根据请求,找到对应的后端控制器

1.3 控制器适配器(HandlerAdapter):负责执行Controller中的方法

1.4 后端控制器(自己定义的Controller对象):可以定义多个方法,每个方法都可以配置自己 的资源路径(URL)

2、其他组件

2.1 视图解析器(ViewResolver)

2.2 拦截器(Interceptor)

2.3 异常处理器(ExceptionResolver)

二、SpringMVC的执行流程

1、前端发起请求,前端控制器接到该请求

2、将请求交给控制器映射器,控制器映射器根据请求找到对应的后端控制器(可执行 链),将该后端控制器返回给前端控制器

3、前端控制器将可执行链交给控制适配器,控制适配器执行对应的可执行链,将执行结果返回给前端控制器

4、前端控制器将执行结果交给视图解析器,视图解析器找到对应的视图,将该视图返回给前端控制器

5、前端控制器将数据渲染到视图上,将视图响应给前端

三、相关操作

1、导入mvc依赖

在pom.xml文件中导入mvc依赖

 <!--spring的web框架-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.24</version>
    </dependency>
2、配置前端配置

在web.xml中配置前端控制器

<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                  http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--配置前端控制器-->
    <servlet>
        <servlet-name>dispatch</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <!--springMVC的配置文件所在位置
               在tomcat容器加载时,会根据此配置文件创建WebApplication对象-->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--tomcat容器加载时,就创建Servlet对象-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatch</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
3、给参数值
3.1 从路径中获取参数值
//@PathVariable:从路径中获取参数值
    @RequestMapping("path/{id}/{name}")
    public String test3(@PathVariable Integer id,
                        @PathVariable String name){
        System.out.println("id="+id);
        System.out.println("name="+name);
        return "index";
    }
3.2 使用Servlet的API
/*使用Servlet的API,将相关的对象作为方法的参数

     */
    @RequestMapping("/req")
    public String test4(HttpServletRequest request){
        String id=request.getParameter("id");
        System.out.println("id="+id);
        return "index";
    }
3.3 通过方法的参数来接收请求参数
@RequestMapping("add")
    //默认情况下,参数名就是请求参数名
    //SpringMVC内置了类型转换器,不需要我们转换类型
    /*
    @RequestParam:修饰方法的形参,可以设置请求参数名等信息
    value:请求参数名
    required:是否必须,默认值为true true代表必须,如果前端不提交此参数,就会报错

     */
    public String add(Integer id,String name,@RequestParam(value = "class",required = true) String clazz){
        System.out.println("id="+id);
        System.out.println("name="+name);
        System.out.println("class="+clazz);
        return "index";
    }
4、获取前端数据
//接收json数据
    //@RequestBody:接收到的数据为json格式
    @PostMapping("/getjson")
    public String getJson(@RequestBody Person person){
        System.out.println("person="+person);
        return "success";
    }
5、获取静态资源

在springMVC.xml中配置

第一种方法:
<!--静态资源的处理
    mapping:静态资源的访问路径
    location:静态资源在服务器上的存放路径
    mvc:resources可以配置多个-->
<mvc:resources mapping="/img/**" location="/img/"></mvc:resources>

第二种自动处理静态资源:
    <mvc:default-servlet-handler></mvc:default-servlet-handler>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值