转载声明:文章来源https://blog.csdn.net/weixin_46564011/article/details/124363859
一下是主要是@GetMapping的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package com.zjh.hellospringboot.controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.Cookie; import java.util.Map; @RestController public class MyController { @RequestMapping( "/1.jpg" ) public String mytest01(){ return "你的html名字" ; } @GetMapping( "/get/{reset}" ) public String getRequest01(@PathVariable( "reset" ) String param01, @RequestParam( "param2" ) String param02, @RequestHeader( "User-Agent" ) String header,@CookieValue( "Idea-5574819b" ) String cookie ){ //@PathVariable是对restful风格的请求参数的提取他可以通过在注解的()内指定url中{}内的参数http://localhost:8080/get/参数1 //@RequestParam是对url路径?后面的的get方式的参数进行取值 http://localhost:8080/get/参数1?param2=参数2 //@RequestHeader可以对请求中的请求头信息进行提取可以通过()内的参数指定 //以上注解除了可以单个取值外也可以进行整合取值 //比如他们都可以将各自的注解进行Map整合取值,但是注意使用map map的kv 必须都是String才能自动填入kv //@cookievalue参数必须是已有的正确cookie键名 //@GetMapping无法映射类参数 return param01+param02+header+ "||" ; } @GetMapping( "/get2/{reset}/{io}" ) public String getRequest02(@PathVariable Map<String,String> pv, @RequestParam Map<String,String> pm, @RequestHeader Map<String,String> rh ,@CookieValue( "Idea-5574819b" ) Cookie cookie ){ //http://localhost:8080/get2/er/er/?name=啊这&path=2 //@cookievalue参数必须是已有的正确cookie键名 return pv.toString()+ "|" +pm.toString()+ "|" +rh.toString()+ "||" +cookie; } @PostMapping( "/postT" ) public String getRequest03(@RequestBody String Content){ //@RequestBody 这个注解可以将提交的表单数据进行一个封装并全部转化为字符串 return "" ; } } |
一下是对请求转发的简单使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | @Controller public class FowardController { @GetMapping( "/goto" ) public String re1(HttpServletRequest httpServletRequest){ httpServletRequest.setAttribute( "msg" , "你好" ); //转发可以将请求域中的参数发送到另一个页面使用且url不变, 重定向不行 return "forward:/here" ; } @GetMapping( "/here" ) @ResponseBody public String re2(@RequestAttribute( "msg" ) String content){ //@RequestAttribute可以指定一个请求域中的键来获取他的至,但是他不支持集合取值,只能单个取值 return content; } } |
一下是对矩阵变量的使用,矩阵变量不仅要配置controller还要去配置springboot的配置类配配置urlpathmatch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package com.zjh.hellospringboot.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.MatrixVariable; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class JuZhenBianLiang { //矩阵变量是以https://space.bilibili.com/1;name=sf;hobby=1,2;/2;name=sf;hobby=1,2; //他是以/1;name=sf;hobby=1,2; 其中以1后的;为路径结尾后面的为变量名值;为结尾 / 后是下一个路径变量来存储其他的矩阵变量 //矩阵变量是绑定 在路径变量中的也就是restful风格所使用的@pathvariable 注解中的 //若只有一个路径变量 矩阵变量指定的变量也就不用指定是哪个路径变量中的矩阵变量 //但是矩阵变量需要在springboot配置类中配置关闭 ->移除路径分号内容 默认是开启的 需要在配置类实现接口WebMvcConfigurer //的方法configurePathMatch @GetMapping( "/{lidakai}" ) //单路径多变量 public String SingleVariable(@PathVariable( "lidakai" ) String path, @MatrixVariable( "name" ) String name){ return path+ "|" +name; } @GetMapping( "/{lidakai}/{op}" ) public String multiVariable(@PathVariable( "lidakai" ) String lidakai,@PathVariable( "op" ) String c ,@MatrixVariable(value = "name" ,pathVar = "lidakai" ) String name1,@MatrixVariable(value = "name" ,pathVar = "op" ) String name2 ){ return name1+ "|" +name2; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package com.zjh.hellospringboot.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.util.UrlPathHelper; @Configuration public class PathConfig implements WebMvcConfigurer { //如要网站禁用cookie后 我们的session会存放在cookie中的jsessionid中 我们便无法使用session //我们可以使用矩阵变量来传值 //此类是用来开启url矩阵变量的一种方法 @Override public void configurePathMatch(PathMatchConfigurer configurer) { UrlPathHelper ul= new UrlPathHelper(); ul.setRemoveSemicolonContent( false ); //设置移除分号内容 原为true 现在设置为false configurer.setUrlPathHelper(ul); } } |
感谢分享!!!!