人在江湖之SpringMVC
文章平均质量分 92
web开发不可或缺的神级架构,老牌的的MVC框架Struts1、Struts2都已经无法与之比拟,是目前项目中MVC架构的首选
没事儿写两篇
授之以鱼不如授之以渔
展开
-
014-Spring MVC处理CORS跨域
Spring MVC中处理CORS跨域Spring MVC中处理CORS跨域有如下几种方式@CrossOrigin(注解)CorsRegistry(全局配置)SpringMVC拦截器实现Filter接口编写axios异步请求当然JQuery或直接AJAX请求也可以编写test.html文件如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">原创 2021-11-11 16:18:55 · 1296 阅读 · 0 评论 -
013-CORS跨域介绍
CORS基本原理简单解释CORS 是一个 W3C 标准,全称是“跨域资源共享”(Cross-origin resource sharing)。它允许浏览器向跨域的服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。CORS 请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。简单请求同时满足以下两大条件,才属于简单请求请求方法是以下三种方法之一HEAD、GET、 POSTHTTP 的头信息不超出以下原创 2021-11-11 11:47:06 · 855 阅读 · 0 评论 -
012-Spring MVC 异常处理源码解析
异常源码解析DispatcherServlet的doDispatch方法最后调用了如下方法。最后一个参数就是我们执行过程中出现的异常。this.processDispatchResult(processedRequest, response, mappedHandler, mv, (Exception)dispatchException);processDispatchResult方法private void processDispatchResult(HttpServletRequest re原创 2021-11-04 16:58:37 · 297 阅读 · 0 评论 -
011-Spring MVC全局异常处理
异常源码解析DispatcherServlet的doDispatch方法最后调用了如下方法。最后一个参数就是我们执行过程中出现的异常。this.processDispatchResult(processedRequest, response, mappedHandler, mv, (Exception)dispatchException);processDispatchResult方法private void processDispatchResult(HttpServletRequest re原创 2021-11-04 16:56:23 · 554 阅读 · 0 评论 -
010-Spring MVC 拦截器及其源码解析
HandlerInterceptorSpring MVC 中拦截器的顶层接口如下:package org.springframework.web.servlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.lang.Nullable;public interface HandlerInterceptor原创 2021-11-01 22:19:43 · 364 阅读 · 0 评论 -
009-Spring MVC Json返回
spring 中的json返回默认使用Jackson来处理。Json返回Controller@RequestMapping("getUser") @ResponseBody public User getUser(){ User user = new User(); user.setName("李四"); user.setAge(11); return user; }@ResponseBody没错,只需要在C原创 2021-10-27 22:46:44 · 195 阅读 · 0 评论 -
008-Spring MVC ViewResolver视图解析器
在002-Spring MVC流程解析中我们提到Spring Boot中默认添加了如下的视图解析器。既然是多个,那么肯定是有顺序的。所有的ViewResolver都实现了Ordered接口,在Spring中实现了这个接口的类都是可以排序的。在ViewResolver中是通过order属性来指定顺序的,默认都是最大值。值越大,排序在越后。我们知道ViewResolver返回View对象,ViewResolver按顺序执行,如果返回的View为null,则执行下一个ViewResolver,如果.原创 2021-09-29 17:16:55 · 420 阅读 · 0 评论 -
007-Spring MVC 参数验证3-自定义验证
自定义验证Hibernate Validate提供了很丰富的内置验证注解。当这些还不能满足你的要求,我们可以自定义验证注解。比如:我们自定义一个关键字过滤的验证规则注解如下。1. 编写验证规则注解类package com.yyoo.springmvc.valid;import javax.validation.Constraint;import javax.validation.Payload;import java.lang.annotation.*;@Target({ Element原创 2021-10-05 18:33:07 · 389 阅读 · 0 评论 -
006-Spring MVC参数验证2-分组验证
分组验证通过前面的文章,我们了解到我们的验证注解都是加在我们对应要验证的JavaBean对应的字段上的。但这有一个问题存在,我们对同一个JavaBean可能不只验证它的新增,可能还会有修改,查询等,而各个操作对应的验证规则可能不一样。这就可以使用分组验证。使用分组验证1.定义用于分组的接口public interface First {} public interface Second {} 分组接口就是两个普通的接口,用于标识,类似于java.io.Serializab原创 2021-09-22 22:49:39 · 389 阅读 · 0 评论 -
005-Spring MVC参数验证1
服务器端的数据验证,对于一个WEB应用来说是非常重要的。现在前后端分离的请求来说,一般是前端验证后,直接调用后端接口,将数据传入后端处理。如果直接调用接口,那么数据就没有通过验证,这是危险的或者说后端得到的数据是不可控的。所以后端验证是必要的。Spring Boot中引入验证依赖 <!-- Spring boot添加验证支持 --> <dependency> <groupId>org.springframewo.原创 2021-09-10 17:25:40 · 219 阅读 · 1 评论 -
004-Spring MVC参数类型转换
先看如下Controller代码 @RequestMapping("/getDateParam") @ResponseBody public String getDateParam(@RequestParam Date date){ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); System.out.println(date); ret原创 2021-09-07 14:35:19 · 436 阅读 · 0 评论 -
003-Spring MVC URL映射与参数绑定
@RequestMapping注解可以作用在类和方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。用于定义每个Controller方法的执行url路径(还可以更细致为同一url不同的参数,不同的content-type执行不同的Controller方法)RequestMapping注解有以下几个重要属性:属性名说明示例value指定请求的实际地址,支持模糊匹配1. ?:匹配一个字符 2. *:匹配任意字符 3. **:匹配多层路径4. 正则匹配5. URI原创 2021-08-05 17:24:42 · 622 阅读 · 0 评论 -
002-Spring MVC流程解析
前言实际上我们的001-Spring Boot HelloWorld就是Spring boot实现的springMVC Helloworld代码。DispatcherServletSpring MVC中所有的请求都有DispatcherServlet来负责分发处理。当然需要很多相关的组件。java配置方式注册DispatcherServletpublic class MyWebApplicationInitializer implements WebApplicationInitializer {原创 2021-08-04 16:44:59 · 156 阅读 · 0 评论 -
001-Spring Boot HelloWorld
准备本文使用maven。请确保你的maven在3.4+版本本文使用当前最新的springBoot版本2.5.1SpringBoot2.5.1需要jdk1.8+本文使用idea开发新建springboot项目项目结构如下:编写pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.原创 2021-06-16 17:19:40 · 110 阅读 · 0 评论