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

SpringMVC的请求

获取请求参数

请求数据乱码问题

运行测试中文乱码问题

请添加图片描述

请添加图片描述

配置全局乱码过滤器

请添加图片描述

编写web.xml

<!--  配置全局过滤的filter-->
  <filter>
    <filter-name>CharterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CharterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

成功解决乱码问题

请添加图片描述

@RequestParam参数绑定注解

请添加图片描述

遇到问题

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

请添加图片描述

接收name时,返回值为null

请添加图片描述

编写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参数

请添加图片描述

username参数

请添加图片描述

@RequestParam注解其他参数

不再测试,随便看下

请添加图片描述

Restful风格参数获取

请添加图片描述

请添加图片描述

编写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);
    }
}

成功测试

请添加图片描述

自定义类型转换器

请添加图片描述

编写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

请添加图片描述

测试遇到问题

date=2022-1-2

请添加图片描述

编写类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的注解驱动-->
    <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>

成功测试

date=2022-1-2

请添加图片描述

获取Servlet相关API

请添加图片描述

编写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);
    }
}

成功测试

请添加图片描述

获取请求头

@RequstHeader

请添加图片描述

编写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() {

    }
}

测试运行

请添加图片描述

请添加图片描述

编写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);
    }
}

成功测试

请添加图片描述

@CookieValue

请添加图片描述

编写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);
    }
}

成功测试

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼鬼骑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值