网站访问代理在线,石家庄专门做网站,龙岗建网站,重庆交通网站建设1. RequestMapping作用 RequestMapping 注解是 Spring MVC 框架中的一个控制器映射注解#xff0c;用于将请求映射到相应的处理方法上。具体来说#xff0c;它可以将指定 URL 的请求绑定到一个特定的方法或类上#xff0c;从而实现对请求的处理和响应。 2. 出现位置的区别 …1. RequestMapping作用 RequestMapping 注解是 Spring MVC 框架中的一个控制器映射注解用于将请求映射到相应的处理方法上。具体来说它可以将指定 URL 的请求绑定到一个特定的方法或类上从而实现对请求的处理和响应。 2. 出现位置的区别
出现在类上
//RequestMapping注解放类上时所有方法都在该路径上
//当访问资源含有/user时会访问该类匹配相对应要执行的函数
//如访问下面/detail资源时实际访问路径为/user/detail
RequestMapping(value /user)
public class UserController {
出现在方法上
//注解在方法上时当访问资源路径中有/user/detail时会执行下面的方法RequestMapping(value /detail)public String detail() {//返回的字符串即要访问的资源返回逻辑视图return userdetail;}
3. RequestMapping注解的value属性 value属性用于设置请求资源路径 value值的使用 /**** 细节一* 一个资源可以对应多个路径即同一个终点资源可以通过不同的方法去访问* 但一个路径不能同时对应多个终点资源*/ 返回的逻辑视图为要展示的资源后端通过该逻辑视图找到对应资源进行展示 //一个资源被多个路径对应//当数组只有一个数据时大括号可以省略即上面的写法//当value值只要一个value也可也省略//value也可以被path替换底层中path是value的别名RequestMapping(value {/detail2, detail3})public String detail2() {return userdetail;}
Ant风格的value值 /**** 细节二Ant风格的value值* ant风格的value值模糊匹配* ?代表任意一个字符除 / 或者 ? 之外的任意字符 一定是字符空着也不行* 如RequestMapping(value /ant/a?t)* *代表0到N个任意字符 除了 / 或者 ? 之外的任意n个字符* **代表0到N个任意字符并且路径中可以出现路径分隔符 /** 注意** 通配符在使用时左右不能出现字符只能是 /* spring6之后用**进行模糊匹配时必须是结尾否则只有一个*的效果*/RequestMapping(value {/ant/a?t, /ant/a*t, /ant/**})public void testAnt() {}
占位符 /**** 细节三占位符*普通的请求路径http://localhost:8080/springmvc/login?usernameadminpassword123age20* RESTful风格的请求路径http://localhost:8080/springmvc/login/admin/123/20*///此时id和password充当占位符可接收id和password的值RequestMapping(/testURL/{id}/{password})public String testURL(//用注解PathVariable可将占位符的值赋给下面的变量PathVariable(id)String id,PathVariable(password)String password) {System.out.println(id id password password);return ok;}
4. RequestMapping注解的method属性 method属性用于设置前端请求方式 //设置method属性则限制前端的请求方式//即前端必须以post方式请求才能访问该资源否则会报405错误RequestMapping(value /method, method RequestMethod.POST)public String tetMethod() {return ok;}
衍生注解 /**** 衍生注解* PostMapping 等同于 RequestMapping(value , method RequestMethod.POST)* GetMapping 等同于 RequestMapping(value , method RequestMethod.GET)* PatchMapping*/常用提交方式 /**** 常用提交方式* post get put delete head* post适合新增* get适合查询* delete适合删除* head适合返回一些头部信息不包含响应体* form表单提交只有get和post两种方式* 若要其他方式需用axios*/5. RequestMapping设置请求参数 params属性的理解 params属性用来设置通过请求参数来映射请求。对于RequestMapping注解来说 * value属性是一个数组只要满足数组中的任意一个路径就能映射成功 * method属性也是一个数组只要满足数组中任意一个请求方式就能映射成功。 * **params属性也是一个数组不过要求请求参数必须和params数组中要求的所有参数完全一致后才能映射成功。 四种用法 //设置params参数后请求路径必须携带params设置的参数不然会报400错误即请求参数不一致RequestMapping(value /params, params {username, password})//此时携带的参数中username的值必须为zhangsan否则也是请求参数不一致RequestMapping(value /params, params {usernamezhangsan, password})//即携带参数不能含有username 写法params {!username}RequestMapping(value /params, params {!username})//携带参数中username的值不能为zhangsanRequestMapping(value /params, params {username!zhangsan, password})public String testParams() {return ok;} 测试用例
a th:href{/user/params(usernamezhangsan, password1234)}参数页面/a 6. RequestMapping设置请求头 headers和params原理相同用法也相同。当前端提交的请求头信息和后端要求的请求头信息一致时才能映射成功。 四种用法 RequestMapping(value/login, headers{Referer, Host}) 表示请求头信息中必须包含Referer和Host才能与当前标注的方法进行映射。 RequestMapping(value/login, headers{Referer, !Host}) 表示请求头信息中必须包含Referer但不包含Host才能与当前标注的方法进行映射。 RequestMapping(value/login, headers{Refererhttp://localhost:8080/springmvc/, Host}) 表示请求头信息中必须包含Referer和Host并且Referer的值必须是http://localhost:8080/springmvc/才能与当前标注的方法进行映射。 RequestMapping(value/login, headers{Referer!http://localhost:8080/springmvc/, Host}) 表示请求头信息中必须包含Referer和Host并且Referer的值不是http://localhost:8080/springmvc/才能与当前标注的方法进行映射。