03.RequestMapping注解

RequestMapping注解

一、使用方式以及介绍

1). 源码

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    ...属性...
}

2). 作用

用于建立请求URL和处理请求方法之间的对应关系。

3). 标注的位置以及意义

1.标注在类上

请求URL的一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以 /开头;它出现的目的是为了使我们的URL可以按照模块化管理。

  1. 比如:用户模块
    • /user/login
    • /user/unlogin
    • /user/register

2. 标注在方法上

请求URL的第二级访问目录

4). 属性详解

以下四个属性的关系为 与&&

  1. value: 用于指定请求的URL。和path属性一样
  2. method: 用于指定请求的方式:post/get
  3. params: 用于指定限制请求参数的条件。支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。如下
/*
params = {"username"} 请求参数必须有username
params = {"money!=100"} 请求参数中的money不能为100
*/

  1. headers: 用于指定限制请求消息头的条件。

headers = {"token"}表示请求头里面必须要有token属性

二、使用案例

1). 【标记位置】+【method属性】+【params属性】

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/** 控制器 */
@Controller
@RequestMapping(path = "/user", params = {"username"})
public class HelloController {

    @RequestMapping(path = "/login", method = RequestMethod.GET)
    public String loginOne() {
        System.out.println("login One");
        return "success";
    }

    @RequestMapping(path = "/login", method = RequestMethod.POST, params = {"password!=123"})
    public String loginTwo() {
        System.out.println("login two");
        return "success";
    }
}

index.jsp中的核心代码

<h3>入门案例</h3>
<a href="user/login?username=lc">登录1</a> <br>
<%-- 当我们使用此种方式配置时,不要在访问URL前面加/,否则无法找到资源 --%>

<form action="${pageContext.request.contextPath}/user/login" method="post">
    <input type="text" name="username" value="lc">
    <input type="password" name="password">
    <input type="submit" value="登录2">
</form>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容