SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)

文章目录

  • SpringMVC的请求
  • 获取请求参数
    • 请求数据乱码问题
      • 运行测试中文乱码问题
      • 配置全局乱码过滤器
      • 编写web.xml
      • 成功解决乱码问题
    • @RequestParam参数绑定注解
      • 遇到问题
      • 编写UserController
      • 成功测试
      • @RequestParam注解其他参数
    • Restful风格参数获取
      • 编写UserController
      • 成功测试
    • 自定义类型转换器
      • 编写UserController
      • 成功测试
      • 测试遇到问题
      • 编写类DateConverter
      • 编写Spring-mvc
      • 成功测试
    • 获取Servlet相关API
      • 编写UserController
      • 成功测试
    • 获取请求头
      • @RequstHeader
        • 编写UserController
        • 测试运行
        • 编写UserController
        • 成功测试
      • @CookieValue
        • 编写UserController
        • 成功测试

SpringMVC的请求

获取请求参数

请求数据乱码问题

运行测试中文乱码问题

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第1张图片

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第2张图片

配置全局乱码过滤器

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第3张图片

编写web.xml


  <filter>
    <filter-name>CharterEncodingFilterfilter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
    <init-param>
      <param-name>encodingparam-name>
      <param-value>UTF-8param-value>
    init-param>
  filter>
  <filter-mapping>
    <filter-name>CharterEncodingFilterfilter-name>
    <url-pattern>/*url-pattern>
  filter-mapping>

成功解决乱码问题

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第4张图片

@RequestParam参数绑定注解

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第5张图片

遇到问题

形参为username时可以返回username的参数taotao

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第6张图片

接收name时,返回值为null

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第7张图片

编写UserController

package com.taotao.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * create by 刘鸿涛
 * 2022/4/16 18:19
 */
@SuppressWarnings({"all"})
@RequestMapping("/user")
@Controller
public class UserController {
    @RequestMapping(value = "/quick16")
    @ResponseBody       //告知SpringMVC框架 不进行视图跳转 直接进行数据响应
    public void save16(@RequestParam (value = "name") String username ) {
        System.out.println(username);
    }
}

成功测试

name参数

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第8张图片

username参数

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第9张图片

@RequestParam注解其他参数

不再测试,随便看下

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第10张图片

Restful风格参数获取

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第11张图片

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第12张图片

编写UserController

package com.taotao.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * create by 刘鸿涛
 * 2022/4/16 18:19
 */
@SuppressWarnings({"all"})
@RequestMapping("/user")
@Controller
public class UserController {
    //localhost:8080/user/quick17/taotao
    @RequestMapping(value = "/quick17/{username}")
    @ResponseBody       //告知SpringMVC框架 不进行视图跳转 直接进行数据响应
    public void save17(@PathVariable(value = "username") String username ) {
        System.out.println(username);
    }

    @RequestMapping(value = "/quick16")
    @ResponseBody       //告知SpringMVC框架 不进行视图跳转 直接进行数据响应
    public void save16(@RequestParam (value = "name") String username ) {
        System.out.println(username);
    }
}

成功测试

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第13张图片

自定义类型转换器

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第14张图片

编写UserController

package com.taotao.controller;

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

import java.util.Date;

/**
 * create by 刘鸿涛
 * 2022/4/16 18:19
 */
@SuppressWarnings({"all"})
@RequestMapping("/user")
@Controller
public class UserController {
    @RequestMapping(value = "/quick18")
    @ResponseBody       
    public void save18(Date date) {
        System.out.println(date);
    }
}

成功测试

date=2022/1/2

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第15张图片

测试遇到问题

date=2022-1-2

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第16张图片

编写类DateConverter

package com.taotao.converter;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * create by 刘鸿涛
 * 2022/4/19 21:41
 */
@SuppressWarnings({"all"})
public class DateConverter implements Converter<String, Date> {
    public Date convert(String dateStr) {
        //将日期字符串转换成日期对象 返回
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            date = format.parse(dateStr);
        }catch (ParseException e){
            e.printStackTrace();
        }
        return date;
    }
}

编写Spring-mvc


    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="com.taotao.converter.DateConverter">bean>
            list>
        property>
    bean>

    
    <mvc:annotation-driven conversion-service="conversionService">mvc:annotation-driven>

成功测试

date=2022-1-2

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第17张图片

获取Servlet相关API

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第18张图片

编写UserController

package com.taotao.controller;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * create by 刘鸿涛
 * 2022/4/16 18:19
 */
@SuppressWarnings({"all"})
@RequestMapping("/user")
@Controller
public class UserController {
    @RequestMapping(value = "/quick19")
    @ResponseBody
    public void save19(HttpServletRequest req, HttpServletResponse resp, HttpSession session) {
        System.out.println(req);
        System.out.println(resp);
        System.out.println(session);
    }
}

成功测试

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第19张图片

获取请求头

@RequstHeader

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第20张图片

编写UserController
package com.taotao.controller;

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


/**
 * create by 刘鸿涛
 * 2022/4/16 18:19
 */
@SuppressWarnings({"all"})
@RequestMapping("/user")
@Controller
public class UserController {
    @RequestMapping(value = "/quick20")
    @ResponseBody
    public void save20() {

    }
}

测试运行

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第21张图片

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第22张图片

编写UserController
package com.taotao.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * create by 刘鸿涛
 * 2022/4/16 18:19
 */
@SuppressWarnings({"all"})
@RequestMapping("/user")
@Controller
public class UserController {
    @RequestMapping(value = "/quick20")
    @ResponseBody
    public void save20(@RequestHeader(value = "User-Agent",required = false) String user_agent) {
        System.out.println(user_agent);
    }
}

成功测试

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第23张图片

@CookieValue

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第24张图片

编写UserController
package com.taotao.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * create by 刘鸿涛
 * 2022/4/16 18:19
 */
@SuppressWarnings({"all"})
@RequestMapping("/user")
@Controller
public class UserController {
    @RequestMapping(value = "/quick20")
    @ResponseBody
    public void save20(@CookieValue(value = "JSESSIONID",required = false) String jsessionId) {
        System.out.println(jsessionId);
    }
}

成功测试

SpringMVC -SpringMVC获取请求参数详解与案例步骤开发(中)_第25张图片

你可能感兴趣的:(笔记,成长阶段,java,spring,tomcat,Spring-mvc,maven)