做网站软件下载手机版,杭州seo网络公司,教育网站解决方案,徐州网站开发口碑好Spring MVC RequestMapping属性 RequestMapping 
RequestMapping#xff0c; 是 Spring Web 应用程序中最常用的注解之一#xff0c;主要用于映射 HTTP 请求 URL 与处理请求的处理器 Controller 方法上。使用 RequestMapping 注解可以方便地定义处理器 Controller 的方法来处… Spring MVC RequestMapping属性  RequestMapping 
RequestMapping 是 Spring Web 应用程序中最常用的注解之一主要用于映射 HTTP 请求 URL 与处理请求的处理器 Controller 方法上。使用 RequestMapping 注解可以方便地定义处理器 Controller 的方法来处理不同的 HTTP 请求从而实现 Web 应用程序的路由功能。 
RequestMapping 注解可用于方法级别和类级别 方法级别上使用 RequestMapping 注解将请求 URL 与特定的处理器 Controller 方法进行映射 类级别上使用 RequestMapping 注解将请求 URL 与整个处理器 Controller 类进行映射 
简单示例 在方法级别上使用 RequestMapping 注解 
//原来案例
package cn.edu.springmvcdemo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;Controller
public class IndexDemo {RequestMapping(/index)public String index(){return index; //返回对应页面文件名}
}结果如图  
在类级别上使用 RequestMapping 注解 
package cn.edu.springmvcdemo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;RequestMapping(/index) //类级别使用该注解相当于请求地址上增加一个父目录
Controller
public class IndexDemo {RequestMapping(/index) //子目录public String index(){return index; //返回对应页面文件名}
}结果如图区别在于请求 URL   
属性 
RequestMapping 注解属性 
一、value指定请求地址 
1.可以是相对路径或绝对路径 
package cn.edu.springmvcdemo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;Controller
public class IndexDemo {//1.可以指定为具体值RequestMapping(/index1)public String index1(){return index; //返回对应页面文件名}
}结果如图  
2.可以是 URL Template 模式 
package cn.edu.springmvcdemo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;Controller
public class IndexDemo {//2.可以指定为含有变量或正则表达式的一类值URL TemplateRequestMapping(/index2/{id})//PathVariable 注解的 value 值需要与占位符中的变量保持一致public String index2(PathVariable(value  id) int ids){System.out.println(ids);return index;}
}结果如图   
二、method指定请求方法 
可以是 GET、POST、PUT、DELETE 等 HTTP 方法默认自动匹配 GET 或 POST 请求 
如图指定请求方法为 GET  
三、consumes指定请求 consumes 即指定请求所接受的媒体类型Content-Type 
简单示例 首先创建一个 accessing.jsp 
%--Created by IntelliJ IDEA.User: dellDate: 2023/7/18Time: 12:54To change this template use File | Settings | File Templates.
--%
% page contentTypetext/html;charsetUTF-8 languagejava %
html
bodyh2访问成功/h2
/body
/html然后在 index.jsp 中添加一个 form 表单 
% page contentTypetext/html;charsetUTF-8 languagejava %
htmlbodyh2Hello World/h2form action${pageContext.request.contextPath}/consumes methodpostinput typetext valuespring mvcinput typesubmit value提交/form/body
/html接着属性 consumes 指定请求的内容类型为 text/html 
package cn.edu.springmvcdemo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;Controller
public class IndexDemo {//1.可以指定为具体值RequestMapping(/index1)public String index1(){return index; //返回对应页面文件名}//consumes 限制内容类型为 text/html 才接受请求处理其余的会报错HTTP状态 415 - 不支持的媒体类型RequestMapping(value  /consumes,method  RequestMethod.POST,consumes  text/html)public String consumes(){System.out.println(访问成功);return accessing;}
}最后测试结果 1.打开 index.jsp  
2.点击提交跳转到 accessing.jsp  原因consumes 属性指定接收内容类型为 text/html 但如图请求头中真正的类型为 application/x-www-form-urlencoded 与之不匹配故报错HTTP状态 415 - 不支持的媒体类型 
解决将 consumes  “text/html” 改为 consumes  “application/x-www-form-urlencoded” 或者删除 consumes 属性即可 
四、produces指定请求 produces 即指定响应的媒体类型Content-Type 
接着上面的示例将 consumes 属性改为 produces 属性  
结果如图  注 
produces 属性指定的响应类型当请求头的 Accept 的类型中包含即可成功响应Accept 中的 /;q0.8 类型表示可以接收任何类型权重系数0.8指若前几种类型不能正常接收则根据响应的数据类型进行自动分析匹配处理 
五、params指定请求参数 
可以是查询参数或表单参数指定参数后必须包含这些参数才接收处理 
简单示例 首先在 index.jsp 中再添加两个 input 标签并添加 name 参数和参数值 
% page contentTypetext/html;charsetUTF-8 languagejava %
htmlbodyh2Hello World/h2form action${pageContext.request.contextPath}/consumes methodpost%-- name值为对应的参数 --%input typetext namedata value /input typetext nameday value /input typesubmit value提交/form/body
/html接着成功访问跳转的 accessing.jsp 内容如下 
%--Created by IntelliJ IDEA.User: dellDate: 2023/7/18Time: 12:54To change this template use File | Settings | File Templates.
--%
% page contentTypetext/html;charsetUTF-8 languagejava %
html
bodyh2访问成功/h2
/body
/html然后属性 params 指定表单参数或参数条件 
package cn.edu.springmvcdemo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;Controller
public class IndexDemo {//1.可以指定为具体值RequestMapping(/index1)public String index1(){return index; //返回对应页面文件名}//params 指定参数必须有 data,day 而且 day10 才能访问成功条件可以为  、 ! RequestMapping(value  /consumes,method  RequestMethod.POST,params  {data,day10})public String consumes(){System.out.println(访问成功);return accessing;}
}最后测试结果 1.当 day1 时访问失败   
2.当 day10 时访问成功   
六、headers指定请求头 
可以是特定的请求头信息指定请求头后必须包含这些请求头信息才接收处理 
请求头信息 Request Headers   
接着上面的示例将 params 属性改为 headers 属性并指定请求头信息以 Accept-Language: zh-CN,zh;q0.9 的请求头信息为例  注headers 属性值以键值对形式表示用等号而不是冒号 
当信息 zh-CN 改为 en-US 时访问失败。结果如图