get请求与post请求发送普通参数 [SpringMVC]

get请求与post请求发送普通参数

1.使用postman发送get请求, 发送普通参数数据:

在这里插入图片描述

上面是编写的后端控制器

在这里插入图片描述

上面是用postman发送的get请求到后端, 因为我使用的是tomcat7, 所以get请求也是会乱码

可以看到, 对于普通参数, 即使有多个, 我们也可以是直接同名写到形参位置, 直接会注入到形参中

2.使用postman发送post请求, 也是发送普通参数

在这里插入图片描述

springmvc(web3.0), 我们要如何解决中文乱码问题?
  • springmvc(web3.0)是没有配置文件的, 是配置类, 所以我们只需要在配置类中注册一个字符编码过滤器就可以了, 和以前的解决方式基本是相同的, 但是springmvc(现在应该称之为springweb)中为我们提供好了字符编码过滤器, 我们直接使用就可以, 使用的时候只需要设置编码字符集就可以了

只需要在springmvc的主配置类中重写一个getServletFilters()方法即可:

public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {

    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{};
    }

    //这里就不用我们手动创建AnnotationConfigWebApplicationContext(web容器对象)并且将SpringMVC容器注册到web容器中了,而是仅仅给一个SpringMVC配置文件
    //这些事情都会在底层由框架帮我们做好
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    //注册过滤器
    @Override
    protected Filter[] getServletFilters() {
        //使用Springmvc为我们提供好的字符编码过滤器即可
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        //设置编码字符集为UTF-8
        characterEncodingFilter.setEncoding("UTF-8");
        return new Filter[]{characterEncodingFilter};
    }
}

在这里插入图片描述

编码过滤器是spring-web这个jar包中的, 这个也就是springmvc依赖

注意: 编码过滤器只是解决了post请求乱码, 至于get请求乱码, 因为现在tomcat8已经处理了, 所以并没有处理, 还有, 如果发现响应乱码, 也是正常, 响应乱码也没有处理, 响应乱码主要是因为原因:response缓冲区的默认编码是iso8859-1,此码表中没有中文,可以通过 response的 setCharacterEncoding(String charset) 设置response的编码
  • 其实不管是输入流还是响应流, Java中默认编码都是ISO8859-1, 而spirngmvc.jar包中的编码过滤器只解决了输入流的编码设置(也就是request.setCharacterEncoding(String charset)), 也就是只解决了post请求乱码
  • 大家都默认设置去测试, 我们自己可以抓包之后去看响应头中的content-type是不是ISO8859-1, 相信大家也就明白了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值