详细解读-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";
    }


相关文章
|
2月前
|
缓存 安全 Java
Spring Get请求 与post请求
本文详细介绍了Spring框架中GET请求和POST请求的区别及应用场景。GET请求用于从服务器获取资源,参数附在URL末尾,适合查看非敏感信息;POST请求用于向服务器提交数据,参数在请求体中传输,适合处理敏感信息。Spring通过`@GetMapping`和`@PostMapping`注解分别处理这两种请求。此外,文章还提供了示例代码,展示了如何在Spring中实现这两种请求的处理。最后,文章总结了推荐使用POST请求的原因,包括更高的安全性、更大的数据传输量、更好的幂等性及灵活性。
Spring Get请求 与post请求
|
1月前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
34 1
Spring MVC——项目创建和建立请求连接
|
23天前
|
前端开发 Java 测试技术
深入剖析:Spring Boot Controller中请求处理方法的访问修饰符
【10月更文挑战第21天】 在Spring Boot应用中,Controller类中的请求处理方法通常用于处理HTTP请求。这些方法的访问修饰符(private或public)对方法的行为和可访问性有着重要影响。本文将深入探讨在Controller中使用private和public修饰符的区别,以及它们对Spring MVC框架的影响。
25 8
|
1月前
|
前端开发 Java Spring
【Spring】“请求“ 之后端传参重命名,传递数组、集合,@PathVariable,@RequestPart
【Spring】“请求“ 之后端传参重命名,传递数组、集合,@PathVariable,@RequestPart
27 2
|
1月前
|
JSON 前端开发 Java
【Spring】“请求“ 之传递 JSON 数据
【Spring】“请求“ 之传递 JSON 数据
87 2
|
1月前
|
前端开发 Java Spring
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
110 2
|
1月前
|
XML Java 应用服务中间件
【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
168 2
|
3月前
|
安全 Java 应用服务中间件
如何在 Spring Boot 3.3 中实现请求 IP 白名单拦截功能
【8月更文挑战第30天】在构建Web应用时,确保应用的安全性是至关重要的。其中,对访问者的IP地址进行限制是一种常见的安全措施,特别是通过实施IP白名单策略,可以只允许特定的IP地址或IP段访问应用,从而有效防止未授权的访问。在Spring Boot 3.3中,我们可以通过多种方式实现这一功能,下面将详细介绍几种实用的方法。
240 1
|
3月前
|
Java API UED
【实战秘籍】Spring Boot开发者的福音:掌握网络防抖动,告别无效请求,提升用户体验!
【8月更文挑战第29天】网络防抖动技术能有效处理频繁触发的事件或请求,避免资源浪费,提升系统响应速度与用户体验。本文介绍如何在Spring Boot中实现防抖动,并提供代码示例。通过使用ScheduledExecutorService,可轻松实现延迟执行功能,确保仅在用户停止输入后才触发操作,大幅减少服务器负载。此外,还可利用`@Async`注解简化异步处理逻辑。防抖动是优化应用性能的关键策略,有助于打造高效稳定的软件系统。
73 2
|
4月前
|
Java Spring
spring restTemplate 进行http请求的工具类封装
spring restTemplate 进行http请求的工具类封装
202 3