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

文章目录

get请求与post请求发送普通参数1.使用postman发送get请求, 发送普通参数数据:2.使用postman发送post请求, 也是发送普通参数springmvc(web3.0), 我们要如何解决中文乱码问题?注意: 编码过滤器只是解决了post请求乱码, 至于get请求乱码, 因为现在tomcat8已经处理了, 所以并没有处理, 还有, 如果发现响应乱码, 也是正常, 响应乱码也没有处理, 响应乱码主要是因为==原因:response缓冲区的默认编码是**iso8859-1**,此码表中没有中文,可以通过 response的 setCharacterEncoding(String charset) 设置response的编码==

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, 相信大家也就明白了

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: