
springmvc
文章平均质量分 67
分享自己在学习springmvc过程中的所学所感悟
小董亮出你的8块腹肌吧!
专注后端技术分享!!!
展开
-
springmvc之系列文章
一次GET请求在springmvc中是的处理流程 。原创 2023-03-28 17:43:15 · 293 阅读 · 0 评论 -
springmvc之编程步骤
本文一起看下如何从0搭建一个springMVC项目。原创 2023-04-01 18:08:49 · 203 阅读 · 0 评论 -
springmvc初始化过程
本文一起看下springMVC的初始化过程。当我们按照如下的步骤配置好springmvc的环境后,就可以启动tomcat来访问项目了:在启动tomcat的过程中会对springmvc的环境进行初始化,入口自然是DispatcherServlet的init方法。在servlet规范中,加载servlet后,会调用其init方法,当加载DispatcherServlet时,最终会调用到springmvc的servlet处参考。原创 2023-04-02 13:06:52 · 284 阅读 · 0 评论 -
springMVC中的ModelAndView,Model,ModelMap
写在前面本文基于springboot环境来进行测试,没有这个环境的,可以参考这里,隔空????这位同学的用心总结。下面我们正式开始。1:整体分析先看下ModelAndView源码:public class ModelAndView { // 逻辑视图地址 @Nullable private Object view; // 数据 @Nullable private ModelMap model;}其中的Object view代表的就是视图,在jsp环境中原创 2021-01-24 11:44:41 · 2239 阅读 · 0 评论 -
springboot环境中使用springmvc的验证器
写在前面本文基于springboot环境进行测试,如果还没有环境,可以参考这里。1:系统自带验证1.1:定义验证类public class ValidatorPojo { @NotNull(message = "id不能为空") private Long id; // 只能是将来的日期 @Future @DateTimeFormat(pattern = "yyy-MM-dd") @NotNull private Date date; @NotNull // 最小值0.1 @D原创 2021-01-23 11:34:39 · 333 阅读 · 1 评论 -
springmvc转换器converter的使用
1:写在前面页面传递的参数都是string,而在控制器中接收参数类型是不确定的,对于基础数据类型,springmvc已经提供了类型转换器,对于不支持的目标类型,例如日期类型,自定义的对象类型,则可以通过实现接口org.springframework.core.convert.converter.Converter接口的方法来实现,该接口定义如下:@FunctionalInterfacepublic interface Converter<S, T> { @Nullable T conv原创 2021-01-20 21:31:30 · 6037 阅读 · 4 评论 -
springMVC的handler都有哪些类型
1:@ReqeustMapping这是当前我们使用最多的一种方式,是以方法作为handler,可能定义如下:@Controller@RequestMapping("/test")public class FileUploadController { @RequestMapping("/file-upload") public ModelAndView upload(@RequestParam(value = "file", required = true)MultipartFile file,原创 2020-10-19 09:54:21 · 1455 阅读 · 0 评论 -
BeanNameUrlHandlerMapping类介绍
1:介绍该类用于维护比如实现了org.springframework.web.servlet.mvc.Controller接口的类型的handler。关于维护使用如@RequestMapping定义的handler的Mapping可以参考[这里],(https://blog.youkuaiyun.com/wang0907/article/details/108960496)。另外从其名称中也能看出来,这是一个使用BeanName作为url的mapping。2:初始化2.1:入口先看下BeanNameUrlHan原创 2020-10-18 16:56:49 · 1839 阅读 · 3 评论 -
ResponseStatus的简单实用方法
1:自定义错误信息可以通过@ResponseStatus注解和自定义异常来配合使用返回自定义响应状态码和自定义错误信息给客户端。1.1:自定义异常类@ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "用户名和密码不匹配")public class UsernameNotMatchPasswordException extends RuntimeException {}1.2:定义测试controller@Controller@Re原创 2020-10-10 18:03:27 · 4817 阅读 · 1 评论 -
RequestMapping注解方式的handler
1:@XXXMapping为了是实现通过方法定义handler,springmvc定义了如下的一些handler:org.springframework.web.servlet.bind.annotation.@RequestMappingorg.springframework.web.servlet.bind.annotation.@GetMappingorg.springframework.web.servlet.bind.annotation.@PostMappingorg.springfr原创 2020-10-15 12:25:29 · 1212 阅读 · 0 评论 -
springmvc的关于拦截器的讨论
1:接口定义springMVC的拦截器对应的接口是org.springframework.web.servlet.HandlerInterceptor,接口定义如下:public interface HandlerInterceptor { // <1> default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exceptio原创 2020-10-07 18:14:57 · 370 阅读 · 0 评论 -
springMVC HandlerMapping组件介绍
1:简单介绍该组件作用是根据请求信息获取对应的处理请求的handler,职责很单一,只干这一件事。该组件对应的接口是org.springframework.web.servlet.HandlerMapping,只有唯一的一个用来根据请求获取handler的方法getHandler(req),源码如下:public interface HandlerMapping { String BEST_MATCHING_HANDLER_ATTRIBUTE = HandlerMapping.class.getNam原创 2020-10-06 17:17:46 · 1445 阅读 · 0 评论 -
一次GET请求在springmvc中是的处理流程
1:入口我们知道根据servlet规范,servlet调用的入口方法是service,在springmvc中的这个servlet就是org.springframework.web.servlet.DispatcherServlet,但是我们看其源码会发现,并没有这个入口的service方法,实际上该方法是在其父类org.springframework.web.servlet.FrameworkServlet中,源码如下:org.springframework.web.servlet.FrameworkS原创 2020-10-04 19:42:52 · 446 阅读 · 0 评论 -
springmvc主要组件简单介绍
1:一次请求的流程为了更好的分析相关组件,我们先来简单看下一次springmvc请求从浏览器发出http request到获取http Response这个过程都经历了哪些过程,主要如下:A:发出请求B:到达DispatcherServletC:通过请求信息获取处理器和拦截器D:根据处理器获取对应的处理器适配器E:使用处理器适配器调用处理器完处理请求,获取ModelAndViewF:通过ModelAndView解析生成ViewG:渲染View,返回给客户端以上过程可以通过下图表示:原创 2020-10-03 17:59:39 · 481 阅读 · 1 评论 -
用@WebServlet和@WebFilter干掉web.xml
1: servlet3.0在servlet3.0引入了@WebServlet,@WebFilter等注解,可以代替在web.xml中通过<servlet><filter>等标签进行配置,从而可以摆脱掉web.xml,当然还有其它方式实现,具体延伸可以看这里。2: 实践出真知2.1:创建servlet@WebServlet(urlPatterns = "/annotationServlet", loadOnStartup = 1)public class Annotation原创 2020-09-23 15:06:00 · 514 阅读 · 0 评论 -
没有web.xml怎么写web程序
1:servlet2.5时代在servlet 2.5时代,servlet配置在web.xml中,然后web容器通过加载解析web.xml完成诸如servlet,filter,listener等servlet组件的加载和初始化,简单来回忆下这个过程,这里以servlet和filter二者为例来进行说明。1.1:定义servletpublic class HelloWorldServlet extends HttpServlet { @Override protected void doGet(Ht原创 2020-09-21 16:34:33 · 589 阅读 · 0 评论 -
springmvc 的Servlet WebApplicationContext
1:初始化入口在哪里?1.1:熟悉的DispatcherServletorg.springframework.web,.servlet.DispatcherServlet的springmvc的入口servlet,继承了javax.http.HttpServlet,其主要的继承关系如下图:我们知道,按照servlet规范,web容器加载servlet时会调用其init方法进行,而org.springframework.web.servlet.DispatcherServlet的init方法是在其父类or原创 2020-09-17 11:00:41 · 774 阅读 · 0 评论 -
springmvc 的ROOT WebApplicationContext
写在前面在spring MVC中spring的容器目前据我所知有2个,如果简单的从三层架构来说的的话一个是Controller相关的容器,另一个是service+dao相关的容器,本次讨论的ROOT WebApplicationContext其实就是后者service+dao相关的容器。1:初始化入口在哪里?在servlet规范中定义了很多的监听器,不同的监听器可以对外暴露不同事件的监听,主要分为如下2类:1.1:核心对象声明状态变化相关如javax.servlet.ServletContextL原创 2020-09-13 20:44:10 · 1558 阅读 · 0 评论 -
springmvc之@ModelAttribute的用法
1:用在controller中的非handler方法上如果将注解@ModelAttribute定义在controller中的非handler方法上,则在调用controller中的handler之前会先执行该方法,可以针对handler做一些拦截工作,如初始化,验证等。1.1:定义类@Controller@RequestMapping("/myModelAttribute")public class MyModelAttributeController { @ModelAttribute p原创 2020-09-07 19:52:14 · 475 阅读 · 0 评论 -
springMVC之@InitBinder的用法
1: 注册属性编辑器我们在接收参数的时候,对于基础的数据类型,比如接收string,int等类型,springmvc是可以直接处理的,但是对于其他复杂的对象类型,有时候是无法处理的,这时候就需要属性编辑器来进行处理(源数据为string),过程一般就是String->属性编辑器->目标类型。spring为我们提供了一些默认的属性编辑器,如org.springframework.beans.propertyeditors.CustomDateEditor就是其中一个,我们也可以通过继承java.原创 2020-09-03 14:59:29 · 25759 阅读 · 5 评论