聪酱带你学Spring MVC
文章平均质量分 70
一个Quick Start式的框架快速入门
王耳总丶
一个奇怪的程序猿
展开
-
解决跨域问题
解决跨域问题有时候我们通过浏览器发送请求时,会碰到这样一个错误been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource这是浏览器为了安全禁止非同源访问引起的跨域问题,跨域问题可以通过部署Nginx解决,也可以通过修改Spring MVC的配置解决@CrossOrigin注解我们可以将@CrossOrigin注解添加在Controller类上原创 2021-05-22 00:07:55 · 495 阅读 · 0 评论 -
定制日期时间格式
定制日期时间格式当我们和前端交互中传递时间时,我们可以指定时间的表示格式,以方便前端的数据展示和接收处理前端的时间参数配置日期数据格式,可以通过配置文件的方式,也可以通过注解的方式配置文件指定日期格式我们定义一个接口,返回一个Date对象,测试在默认情况下的JSON转换会转换成什么格式@RestControllerpublic class MyController { @RequestMapping("/getDate") public Date getDate() {原创 2021-05-22 00:05:20 · 501 阅读 · 0 评论 -
请求异步处理
请求异步处理当我们使用Spring Boot进行web开发时,默认使用Tomcat作为Servlet的容器,而Tomcat的线程池大小默认为200,如果我们的处理流程很长,就可能因为请求过多而造成线程池里的线程占满,这时候可以使用异步线程返回Callable接口在Spring MVC中,如果我们的请求处理方法返回一个Callable接口,则会开启异步线程功能,主线程接收到请求,然后把处理交给副线程处理,这样主线程就可以空闲出来去处理别的请求当副线程处理完成后,再获取到副线程的处理结果,然后返回给前端原创 2021-05-20 10:17:59 · 660 阅读 · 0 评论 -
全局异常处理
全局异常处理在一个项目中,我们希望在发生一些异常时,如果在service层没有对异常进行捕获处理,则在返回给前端时可以做一个统一的异常捕获处理,这时候可以用Spring MVC为我们提供的全局异常处理机制异常处理器创建一个异常处理器,需要两个注解@ControllerAdvice和@ExceptionHandler,首先我们将@ControllerAdvice注解添加在我们自定义的异常处理器中@ControllerAdvicepublic class GlobalExceptionHandler原创 2021-05-20 10:14:44 · 411 阅读 · 0 评论 -
文件上传下载
文件上传下载我们使用Spring Boot开发web应用,可以很轻松地实现文件上传和下载功能文件上传MultipartFile类要使用文件上传类,只需要使用Spring提供的MultipartFile类即可,它可以封装上传的文件对象,方便我们对文件做各种操作首先我们将MultipartFile对象作为参数添加在请求处理方法的参数列表中,然后在这个对象上添加一个@RequestPart注解,并且绑定文件的名字,也就是前端页面标签中的name属性的值如果前端的一个标签上传的是多个文件,只需要将参数的原创 2021-05-20 10:12:19 · 208 阅读 · 0 评论 -
添加拦截器
添加拦截器当我们需要在所有的请求处理之前,先做一些预处理,或者在请求处理之后做一些后续处理,或者在处理执行流程中如果有异常则执行一段出错逻辑,这时候我们可以使用Spring MVC的拦截器功能事实上这个功能很常用,他的逻辑类似Spring的AOP,在所有的请求处理逻辑之上增加一些增强逻辑HandlerInterceptor接口首先创建一个拦截器类,并实现HandlerInterceptor接口public class MyInterceptor implements HandlerIntercep原创 2021-05-20 10:07:55 · 774 阅读 · 0 评论 -
扩展Spring MVC
扩展Spring MVC使用Spring Boot框架开发时,Spring Boot为我们设置了很多的默认设置,但是有时候我们对默认的Web设置想要做一些改变,参照官方文档,可以得知,这时候我们可以使用一个实现了WebMvcConfigurer接口的配置类来扩展web的默认设置@Configurationpublic class MyWebConfig implements WebMvcConfigurer {}实现这个接口之后,可以看到这个接口有很多的方法,这些方法就是我们可以做配置的设置,原创 2021-05-20 10:01:52 · 112 阅读 · 0 评论 -
设置Session和Cookie
设置Session和Cookie使用Spring MVC时,如果需要使用Session和Cookie,可以通过Servlet原生api设置Session和Cookie设置Session当我们需要保存Session时,如保存用户数据,只需要在请求处理方法的参数列表中添加一个HttpSession对象,然后调用对象的setAttribute方法和getAttribute方法,就可以轻松地设置和获取session@RestControllerpublic class MyController {原创 2021-05-20 09:42:20 · 529 阅读 · 0 评论 -
获取请求头和Cookie
获取请求头和Cookie当我们需要获取请求头中的参数,或者Cookie的时候,可以使用Spring MVC给我们提供的相关注解来完成@RequestHeader使用@RequestHeader注解,可以轻松地获取请求头中的信息,使用方法和获取请求中携带的参数类似,将注解添加在参数列表的参数前,将参数和请求头中的参数名绑定即可@RestControllerpublic class MyController { @RequestMapping("/user") public Map&原创 2021-05-20 09:38:38 · 3627 阅读 · 0 评论 -
转发和重定向中携带变量
转发和重定向中携带变量有时候我们需要在转发中或者重定向中携带变量,并且在转发或者重定向到的请求方法中获取变量,Spring MVC都可以帮我们做到这两点转发中携带变量当我们需要在转发中携带变量和获取变量时,我们可以使用以下几种方式原生HttpServletRequest类使用原生的HttpServletRequest类,可以做到在转发中携带变量,也可以使用他来获取变量携带变量时,将HttpServletRequest类添加在请求方法的参数列表中,然后调用setAttribute方法就可以将变量以原创 2021-05-20 09:35:27 · 622 阅读 · 0 评论 -
自动封装前端参数
自动封装前端参数除了用String类型或者基础数据类型接收参数,Spring MVC还可以帮我们使用集合框架或者自定义类自动封装前端的参数参数封装为List当同名的前端参数有多个时,可以使用一个List类,来作为请求接收方法的参数,参数名和请求中的参数名绑定,这样Spring MVC就会将这个参数封装成一个List类@RestControllerpublic class MyController { @GetMapping(path = "/user") public Map&l原创 2021-05-20 09:32:04 · 1349 阅读 · 0 评论 -
获取前端参数
获取前端参数当前端发送一个请求时,如何使用Spring MVC获取请求中携带的参数呢?在请求中可以有很多种携带参数的方式,获取的方式也不一样,本文介绍如何获取url上的参数,路径变量上的参数,以及请求体中的参数@RequestParam需要获取url上的参数,只需要在请求处理方法中,添加需要获取的参数,参数的名字就是请求中携带的参数名字,参数的类型可以对应请求中携带的参数类型,然后在参数前添加@RequestParam注解,就可以获取url上的参数了@RestControllerpublic cl原创 2021-05-20 09:28:02 · 692 阅读 · 0 评论 -
修改静态资源配置
修改静态资源配置Spring MVC为我们提供了默认访问静态资源的规则,当我们想要修改默认的规则,也可以通过配置文件修改自定义静态资源访问路径前缀Spring Boot为我们提供了一个配置方法,可以来自定义静态资源访问路径前缀,如果我们的项目中有存放静态资源,这是一种经常用到的方式,只需要在Spring Boot的配置文件中加上以下配置spring: mvc: static-path-pattern: /static/**这样静态资源的访问就需要加上指定的前缀才能访问到自定义静态原创 2021-05-09 22:53:21 · 358 阅读 · 0 评论 -
Spring MVC静态资源映射
Spring MVC静态资源映射我们在做路径映射规则时,有时候我们并不想要匹配一个页面,或者返回数据,而是返回一个静态资源(类似图片等),这时候就需要用到Spring MVC的静态资源映射规则默认静态资源路径在Spring Boot中已经规定了一些包路径下的资源是静态资源,在默认的情况下,这个包下的静态资源是可以直接访问的由官方文档可知,当我们将静态资源放在以下包中,可以直接访问classpath:/staticclasspath:/publicclasspath:/resourcesc原创 2021-05-09 22:52:22 · 1066 阅读 · 0 评论 -
RESTful风格
RESTful风格我们在对一个数据进行增删改查操作时,按照传统的方式需要定义四个接口,来接收增删改查这四种不同的请求。设想一下,如果我们有一个用户信息需要增删改查,就需要/addUser,/delectUser,/updateUser,/queryUser四个不同的uri,这样做未免过于繁琐,而且每次都需要给不同的uri起不同的名字也不容易,这个时候我们可以使用RESTful风格的APIRESTful风格定义首先我们看一下RESTful风格的定义REST,即Representational Sta原创 2021-05-09 22:47:08 · 459 阅读 · 0 评论 -
返回前端数据
返回前端数据当我们在处理前端请求时,我们不想返回一个视图,也不想返回一个静态资源,而是想要返回数据,这时候该怎么做呢?实际上这种情况会更加常见,因为在前后端分离的时代,往往不会将页面和静态资源放在后端项目中,后端只负责数据的处理@ResponseBody我们只需要在Controller类上添加一个@ResponseBody注解,既可以使类中所有的方法返回字符串数据,而不走视图映射@Controller@ResponseBodypublic class MyController { @R原创 2021-05-09 22:43:10 · 642 阅读 · 0 评论 -
视图转发与重定向
视图转发与重定向有时候我们需要根据情况,转发或重定向到另外一个页面,这在Spring MVC中也是可以轻松做到的视图转发当我们想要转发到另一个页面时,只需要在返回视图名的时候,在视图名之前添加forward:即可@Controller@RequestMapping("/api")public class MyController { @RequestMapping("/test") public String test() { return "forward:/原创 2021-05-09 22:36:33 · 767 阅读 · 0 评论 -
Spring MVC视图映射
Spring MVC视图映射Spring MVC是Spring框架下一个用于请求映射的模块,当一个前端请求发送到后端时,Spring MVC可以通过请求的uri来找到相对应的视图或者需要返回给前端的数据(一般以JSON格式返回)当一个请求需要返回一个视图,也就是页面时,我们需要以下几步添加@Controller注解创建一个自定义的视图解析器类,然后在这个类的类名上添加@Controller`注解,这个注解表示这个类是一个视图解析器,并将这个类加入到Spring容器中,当一个前端请求发送到Spring原创 2021-05-09 22:33:49 · 421 阅读 · 0 评论