详细解读-Spring请求处理(上)

简介: 详细解读-Spring请求处理

一、请求参数处理

1.SpringMvc对请求参数的处理

@RequestParam:获取请求的参数

如何获取SpringMVC中请求中的信息

默认情况下,可以直接在方法的参数中填写跟请求一样的名称,此时会默认接受参数

如果有值,直接赋值,如果没有,那么直接给空值

@RequestParam:获取请求中的参数值,使用此注解之后,参数的名称不需要跟请求 的名称一致,但是必须要写


此注解还包含三个参数:

value:表示要获取的参数值

required:表示此参数是否必须,默认是true,如果不写参数那么会报错, 如果值为false,那么不写参数不会有任何错误

defaultValue:如果在使用的时候没有传递参数,那么定义默认值即可


示例:

 @RequestMapping("/bobo")
    public String bobo(@RequestParam(value = "username", defaultValue = "徐庶") String name) {
        System.out.println(name);
        return "index.jsp";
    }


@RequestHeader:获取请求头信息

如果需要获取请求头信息该如何处理呢?

可以使用@RequestHeader注解,

如果要获取请求头中没有的信息,那么此时会报错

同样,此注解中也包含三 个参数,跟@RequestParam一样 value required defalutValue


示例:

 @RequestMapping("/header")
    public String header(@RequestHeader("Host") String host){
        System.out.println(host);
        return "/index.jsp";
    }


@CookieValue获取cookie中的值

如果需要获取cookie信息该如何处理呢?

可以使用@CookieValue注解

如果要获取cookie中没有的信息,那么此时会报错

同样,此注解中也包含三 个参数,跟@RequestParam一样 value required defalutValue


示例:

   @RequestMapping("/cookie")
    public String cookie(@CookieValue("JSESSIONID") String jsessionId){
        System.out.println(jsessionId);
        return "/index.jsp";
    }


2.乱码问题的解决

我们在表单或者发送请求的时候,经常会遇到中文乱码的问题

那么 如何解决乱码问题呢?


GET请求:修改tomcat的server.xml,在Connector标签后面+ URIEncoding=“utf-8”

POST请求:编写过滤器进行实现


在web.xml中加入过滤器进行实现POST请求

注:此过滤器要写在其他过滤器前面,否则不起作用

<!--    解决编码识别问题-->
    <filter>
        <filter-name>characterEncodingFileter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!--        encoding 编码格式-->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
<!--    同时开启请求和响应的编码设置  -->
        <init-param>
            <param-name>transformWsdlLocations</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFileter</filter-name>
        <servlet-name>springmvc</servlet-name>
    </filter-mapping>


3.SpringMvc对原生API的支持

springMvc中的handler可以接收如下的servletAPI:

1.HttpServletRequest

2.HttpServletResponse

3.HttpSession

4.java.security.Principal

5.Locale

6.InputStream

7.OutputStream

8.Reader

9.Writer


通过导入Tomcat中lib文件下的service和jsp包 导入依赖

示例:

  @RequestMapping("/servlet")
    public String servlet(String username , HttpServletRequest request, HttpServletResponse response){
        System.out.println(username);
        String name = request.getParameter("name");
        System.out.println(name);
        request.setAttribute("name",name);
        return "/index.jsp";
    }


相关文章
|
1月前
|
Java Spring
用spring发送http请求
用spring发送http请求
|
1月前
|
Web App开发 JavaScript Java
教会你什么是Spring-Rest- url 请求风格
教会你什么是Spring-Rest- url 请求风格
54 0
|
1月前
|
监控 IDE Java
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
55 0
|
3天前
|
前端开发 Java Spring
Spring MVC 请求处理流程
Spring MVC 请求处理流程
4 0
|
13天前
|
存储 前端开发 Java
Spring Web MVC入门(2)——请求(下)
Spring Web MVC入门(2)——请求
19 0
|
13天前
|
JSON 前端开发 Java
Spring Web MVC入门(2)——请求(上)
Spring Web MVC入门(2)——请求
12 0
|
1月前
|
Java 应用服务中间件 微服务
Spring Boot可以同时处理多少请求?
Spring Boot的并发处理能力受硬件、JVM配置、嵌入式Tomcat的线程池(默认最大连接数8192,最大等待数100)、应用效率、系统架构和网络条件影响。开发阶段可能处理数百个并发,优化后在适合的硬件上可处理数千乃至上万并发。大型系统常结合负载均衡器。
35 2
|
1月前
|
XML JSON Java
[AIGC] 在Spring Boot中指定请求体格式
[AIGC] 在Spring Boot中指定请求体格式
227 0
|
1月前
|
前端开发 Java Spring
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
44 1
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
|
1月前
|
Java Spring
spring cloud 通过feign请求动弹设置请求头heades
spring cloud 通过feign请求动弹设置请求头heades
47 0