SpringMVC(注解)-@RequestMapping的参数与使用

SpringMVC的执行过程

在这里插入图片描述

  • 1.用户浏览器发送请求到前端控制器DispatcherServlet.

  • 2.DusoatcgerServlet收到请求调用HandlerMapping处理器。

  • 3.处理器映射找到具体的处理器(可以根据xml配置,注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)并一路返回DispatcherServlet.

  • 4.Dis[atcherServlet调用HandlerAdapter处理器适配器。

  • 5.HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

  • 6.Controller执行完成返回ModelAndView.

  • 7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherSerlve.

  • 8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

  • 9.ViewReslover解析后返回具体View.

  • 10.DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。DispatcherServlet响应用户。

使用@RequestMapping

  • 作用:用于请求URL和请求处理 请求方法之间的对应关系

  • 位置:

    • 类上,请求URL的第一级访问目录。此处不写的还,就相当于应用的根目录
    • 方法上,请求URL的第二级访问目录,与类上的使用@ReqquestMapping标注的以及目录一起组成访问虚拟路径

使用步骤分为五步

  • (1)导入 SpringMVC相关坐标
  • (2)配置SpringMVC核心控制器DispathcerServlet
  • (3)创建java类和视图页面
  • (4)使用注解配置java类中业务方法的映射地址
  • (5)配置SpringMVC核心文件Spring-MVC.xml

1.导入SpringMVC相关坐标

在项目pom.xml文件下导入spring-webmvc包

在这里插入图片描述

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.0.5.RELEASE</version>
</dependency>
在复制上面导入jar包代码后,如果报红了

就在项目最左侧点开Maven,选择你的当前项目,点击左上角的重新加载项目。就会重新加载依赖项,并且下载补充依赖
在这里插入图片描述

2.配置SpringMVC核心控制器DispathcerServlet

SpringMVC的核心就是DispatcherServlet,DispatcherServlet实质也是一个HttpServlet。DispatcherSevlet负责将请求分发,所有的请求都有经过它来统一分发。
前端控制器DispatcherServlet写在web.xml文件中
在这里插入图片描述

<!--配置SpringMVC的前端控制器-->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

3.创建Controller类和视图页面

1.创建视图在web下新建一个jsp视图右键web—>新建—>jsp/jspx,我新建了success.jsp
在这里插入图片描述

在这里插入图片描述
里面写一些显示在网页上的东西就行
在这里插入图片描述

2.创建Controller并第四步使用注解配置UserController类中业务方法的映射地址

在这里插入图片描述
这里我在com.controller下创建了一个UserController的java类
使用@RequestMapping映射一个虚拟地址"/quick"

//请求映射
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class UserController {
    @RequestMapping("/quick")
    public String save(){
    	//验证是否执行到这控制器(执行到会打印一句话到控制台) 
        System.out.println("Controller save running....");
        return "success.jsp";
    }

5.配置SpringMVC核心文件Spring-MVC.xml

首先在text下资源测试文件夹resources中创建Spring-MVC.xml文件,新建右键资源文件resources—>新建—>XML配置文件—>Spring配置在这里插入图片描述

然后配置组件扫描器
在这里插入图片描述

在配置组件扫描器时需要使用context:component-scan标签,而这个标签在context命名空间下,所以需要导入一下在xmlns:xsi下面添加一个xmls:context,再到xsi:schenLocation中添加context的地址(下面代码直接复制)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!--Controller的组件扫描-->
    <!--这里base-package中将地址改成你的UserController地址-->
    <context:component-scan base-package="com.controller">
        <!--扫描controller包下的Controller注解-->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
</beans>
最后回到web.xml,前端控制器中将请求分发给spring-mvc.xml

在这里插入图片描述

在标签下面添加以下代码,将请求给到spring-mvc.xml去执行

<init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring-mvc.xml</param-value>
</init-param>
运行

在网页地址中输入quick映射地址,跳转到success.jsp
在这里插入图片描述

@RequestMapping的一些常用参数

在这里插入图片描述

@Controller
public class UserController {
    //请求映射
    //以下method指定GET提交请求(如果不是GET提交汇报405错误)
    //以下parame表示访问地址必须携带参数"username"(否则报400错误)
    @RequestMapping(value = "/quick",method = RequestMethod.GET,params = {"username"})
    public String save(){
        System.out.println("Controller save running....");
        //前面加一个/,表示在wab目录下去找success.jsp
        //加上redirect表示重定向url地址的前缀,forward转发地址前缀
        return"redirect:/success.jsp";
    }
}
运行,这时就要在地址后缀加上参数username

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值