学习笔记——@PathVariable注解基本使用;@PathVariable注解属性;REST风格CRUD概述;实现PUT&DELETE提交方法步骤;SpringMVC处理请求数据请求头处理

Posted isDaHua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记——@PathVariable注解基本使用;@PathVariable注解属性;REST风格CRUD概述;实现PUT&DELETE提交方法步骤;SpringMVC处理请求数据请求头处理相关的知识,希望对你有一定的参考价值。

2023-01-19

一、@PathVariable注解基本使用

1、获取URL中占位符

2、占位符语法:

3、实例代码:

@RequestMapping("testPathVariable/empId")
    public String testPathVariable(@PathVariable("empId")Integer empId)
        System.out.println(" empId = " + empId);
        return SUCCESS;
    
<a th:href="@/EmpController/testPathVariable/1001">测试testPathVariable</a><br>

二、@PathVariable注解属性

1、value属性

(1)类型:String

(2)作用:设置占位符中的参数名

2、name属性

(1)类型:String

3、required属性

(1)类型:boolean

(2)作用:设置当前参数是否必须入参

①true:表示当前参数必须入参,如未入参数会报以下错误

Missing URI template variable \'empId\' for method parameter of type Integer

②false:表示当前参数不必须入参,如未入参,会装配null值 

三、REST风格CRUD概述

1、REST的CRUD与传统风格CRUD对比

 

2、REST风格CRUD优势

(1)提高网站排名

排名方式:

①竞价排名

②技术排名

(2)便于第三方平台对接

四、SpringMVC环境搭建

五、REST风格CRUD练习——查询

六、实现PUT&DELETE提交方法步骤

1、注册过滤器HiddenHttpMethodFilter

2、设置表单的提交方法为POST

3、设置参数:_method=PUT或_method=DELETE

七、源码解析HiddenHttpMethodFilter


public static final String DEFAULT_METHOD_PARAM = "_method";
private String methodParam = "_method";

protected
void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException HttpServletRequest requestToUse = request; if ("POST".equals(request.getMethod()) && request.getAttribute("javax.servlet.error.exception") == null) String paramValue = request.getParameter(this.methodParam); if (StringUtils.hasLength(paramValue)) String method = paramValue.toUpperCase(Locale.ENGLISH); if (ALLOWED_METHODS.contains(method)) requestToUse = new HiddenHttpMethodFilter.HttpMethodRequestWrapper(request, method); filterChain.doFilter((ServletRequest)requestToUse, response);
private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper 
        private final String method;

        public HttpMethodRequestWrapper(HttpServletRequest request, String method) 
            super(request);
            this.method = method;
        

        public String getMethod() 
            return this.method;
        
    

八、SpringMVC处理请求数据

1、使用Servlet处理请求数据

(1)请求参数

Spring param = request.getParameter();

(2)请求头

request.getHeader()

(3)Cookie

request.getCookies();

2、处理请求参数

(1)默认情况:可以将请求参数名,与入参参数名一致的参数,自动入参(自动类型转换)。

(2)@RequestParam注解

①作用:如请求参数与入参参数

②属性

value:是String类型;作用:设置需要入参的参数名

name:是String类型;作用:与value属性作用一致

required:是Boilean类型;作用:设置当前参数,是否必须入参

defaultValue:是String类型;作用:当装配数值未null时,指定当前defaultValue默认值

九、处理请求头

1、语法:@RequestHeader注释

2、属性

(1)value:

①类型:String

②作用:设置需要获取请求头名称

(2)name:

①类型:String

②作用:与value属性作用一致

(3)required:

①类型:Boilean

②作用:设置当前参数,是否必须入参

(4)defaultValue:

①类型:String类型

②作用:当装配数值未null时,指定当前defaultValue默认值

十、处理Cookie信息

1、语法:@CookieValue获取Cookie数值

2、属性:同上

3、实例代码:

<a th:href="@/setCookie">设置Cookie</a>
<a th:href="@/getCookie">获取Cookie</a>
@RequestMapping("/setCookie")
    public String setCookie(HttpSession httpSession)
        System.out.println("httpSession.getId() = " + httpSession.getId());
        return SUCCESS;
    

    @RequestMapping("/getCookie")
    public String getCookie(@CookieValue("JSESSIONID")String cookieValue)
        System.out.println("cookieValue = " + cookieValue);
        return SUCCESS;
    

 

以上是关于学习笔记——@PathVariable注解基本使用;@PathVariable注解属性;REST风格CRUD概述;实现PUT&DELETE提交方法步骤;SpringMVC处理请求数据请求头处理的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 2从入门到入坟 | 请求参数处理篇:常用参数注解之@PathVariable

Spring Boot 2从入门到入坟 | 请求参数处理篇:常用参数注解之@PathVariable

@PathVariable注解使用

@PathVariable注解和@RequestParam注解的区别

@PathVariable注解的功能是什么呢?

Springboot@PathVariable注解使用--请求路径占位符