springmvc
文章平均质量分 79
springmvc框架
拾光师
瞧一瞧,看一看,好吃还不贵。量大管饱
多年java开发经验,现征战于互联网广告行业
分享各种java相关知识,每周至少五更
展开
-
springmvc源码之ViewResolver视图解析器
ViewResolver进行视图解析,根据逻辑视图名解析成真正的视图,首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。springmvc框架提供了很多的View视图类型,包括:jstlView、freemarkerView、pdfView等。InternalResourceViewResolver将逻辑视图名称解析为View对象,架构该对象渲染的任务委托给Web应用程序上下文的一个模板。原创 2023-01-17 11:42:52 · 364 阅读 · 0 评论 -
springmvc揭秘参数解析
Spring MVC中,是通过WebDataBinder机制来获取参数的,它的主要作用是解析HTTP请求的上下文,然后在控制器的调用之前转换参数并且提供验证的功能,为调用控制器方法做准备。对于简单的参数会以简单的转换器进行转换,而这些简单的转换器是Spring MVC自身已经提供了的,但是如果是转换HTTP请求体,会调用HttpMessageConverter接口的方法对请求体的信息进行转换。注解,并且参数类型不是 Map 的参数(参数类型是 Map 的使用。原创 2024-05-29 09:54:41 · 884 阅读 · 0 评论 -
springmvc揭秘异常处理机制
DefaultHandlerExceptionResolver 根据不同类型的异常来进行解析,response.sendError设置不同的错误码。HandlerExceptionResolver是专门进行异常处理的,在render之前进行工作,从异常中解析出ModelAndView。SimpleMappingExceptionResolver 通过配置的异常类和View的映射关系来解析异常。HandlerExceptionResolver异常处理。该方法是处理异常的实际方法。原创 2024-05-28 10:03:44 · 410 阅读 · 0 评论 -
springmvc配置视图解析器
ViewResolver进行视图解析,将逻辑视图名解析成真正的视图,首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。InternalResourceViewResolver将逻辑视图名称解析为View对象,将该对象渲染的任务委托给Web应用程序上下文的一个模板。InternalResourceViewResolver 继承UrlBasedViewResolver,支持内部资源视图,jsp类型的视图。原创 2024-05-27 09:56:04 · 563 阅读 · 0 评论 -
springmvc揭秘之HandlerAdapter处理适配器
由于Spring经过很长时间的版本迭代,为了适配老版本,Spring 中的处理器的实现有很多种方式,比如可以实现 Controller 接口,也可以用 @Controller+@RequestMapping 注解将方法作为一个处理器等,这就导致 Spring 不知道怎么调用用户的处理器逻辑。HandlerMapping通过request找到了handler,HandlerAdapter是具体使用Handler来干活的,每个HandlerAdapter封装了一种Handler的具体使用方法。原创 2024-05-26 11:21:56 · 944 阅读 · 0 评论 -
springmvc中HandlerMapping是干什么用的
HandlerMapping帮助DispatcherServlet进行web请求的url到具体处理类的匹配,用来根据请求的url查找Handler,内部维护的Map映射,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。DefaultAnnotationHandlerMapping 将请求映射给使用@RequestMapping注解的控制器和控制器方法。RequestMappingHandlerMapping源码。原创 2024-05-25 10:53:00 · 361 阅读 · 0 评论 -
一文带你搞懂DispatcherServlet前端控制器
可以配置来解决,作用是处理静态资源,会在SpringMVC上下文中定义一个DefaultServletHttpRequestHandle,对进行DispatcherServlet的请求进行筛选,如果发现是没有经过映射的请求,就将请求交给WEB服务器默认的Servlet来处理,否则交由DispatcherServlet来处理。CookieThemeResolver 用于实现用户所选的主题,以cookie的形式存放在客户端的机器上。原创 2024-05-24 14:33:31 · 1192 阅读 · 0 评论 -
springmvc Web上下文初始化
ContextLoaderListener实现了ServletContextListener接口,ServletContextListener是Servlet定义的,提供了与Servlet生命周期结合的回调,contextInitialized方法和contextDestroyed方法;web上下文与SerlvetContext的生命周期应该是相同的,springmvc中的web上下文初始化是由ContextLoaderListener来启动的。创建WebApplicationContext上下文。原创 2024-05-23 10:04:53 · 985 阅读 · 0 评论 -
使用springSession完成分布式session
分布式session可以使用spring session来进行实现,由于HttpRequest的Wrapper功能,许多HttpRequest中的方法都可以进行替换来进行自定义的重写,可以在Wrapper中将getSession方法重写掉,然后进行自定义的session存储和处理,当然了,你能想到的,一般都是早就有人已经实现了,就不重复造轮子了。启动项目之后正常的向往常一样的操作session,就可以看到redis中存有session了。这里演示的是将session存储在redis中,所需要的依赖。原创 2024-05-22 19:19:30 · 541 阅读 · 0 评论 -
springmvc支持国际化
之前javaweb的时候就使用过国际化,而springmvc作为一个javaweb的框架,肯定也是支持国际化的,其建立在java国际化的基础之上,通过不同国家或语言的消息资源,通过ResourceBundle加载指定的Locale对应的资源文件,在取得该资源文件中指定key对应的消息。在springmvc中选择语言区域,可以使用语言区域解析器,而LocaleResolver就是springmvc中提供的区域解析器接口,实现类有。原创 2024-05-21 10:43:47 · 429 阅读 · 0 评论 -
springmvc文件上传
在Servlet3.0中配置的话,需要在web.xml中为DispatcherServlet添加一个multipart-config元素,或者通过编程的方式使用MultipartConfigElement进行注册,不允许在MultipartResolver中配置这些信息。对于javaweb的文件上传大家应该都有一定了解,也知道文件上传时用的请求格式是什么?bean可以使用xml配置或者javaConfig配置。bean可以使用xml配置或者javaConfig配置。javaConfig配置。原创 2024-05-20 10:16:33 · 304 阅读 · 0 评论 -
springmvc不同格式的参数解析
现在使用这种格式的比较多,报文会在请求体内,而不是拼接到地址中,使用springmvc接收时使用@RequestBody注解标注,使用到的参数处理器为RequestResponseBodyMethodProcessor,默认会用到MappingJackson2HttpMessageConverter进行参数类型的转换,底层依赖到Jackson相关的包。application/x-www-form-urlencoded格式。application/json格式。原创 2024-05-18 10:27:07 · 316 阅读 · 0 评论 -
spring与springmvc整合
在项目中使用springmvc的时候,由于spring和springmvc是同源的,有时候大家会把所有的配置都扔到springmvc的配置文件中,而不去区分spring和springmvc的配置,而我习惯于把两个配置拆分开来,spring来配置数据源、事务以及和其他框架的整合,springmvc来配置web相关的一些配置。当springmvc的配置文件和spring的配置文件分离的时候,由于现在使用注解的比较多,大多都是用组件扫描,然后分别在spring和springmvc的配置文件中配置相关的bean。原创 2024-05-16 10:21:44 · 1062 阅读 · 0 评论 -
springmvc注解整理
可以放到方法上或者参数上,它将方法参数或方法返回值绑定到命名中的Model属性中,然后将其公开给Web视图。默认情况下Spring MVC将模型中的数据存储到request域中,当一个请求结束后,数据就失效了,如果要跨页面使用,就需要使用session,可以使用@SessionAttributes和@SessionAttribute来进行操作。地址映射,可以用在类和方法上,其path支持Ant表达式,用*来表示匹配任意字符,用**来表示统配任意路径,用?可以接收拼接在地址栏中的参数。如:get/{id}原创 2024-05-15 10:21:46 · 317 阅读 · 0 评论 -
springmvc异常处理
在前面的ExceptionHandlerExceptionResolver中已经用到了@ControllerAdvice,其实@ControllerAdvice是对于@ExceptionHandler的一个补充,使得可以进行全局的异常解析,可以将之前多个分散的@ExceptionHandler整合起来,合并成为一个单一的全局的异常处理中。如果当前Controller中没有异常处理,则会使用全局异常(使用@ControllerAdvice标注的类中的@ExceptionHandler方法)原创 2024-05-14 10:15:48 · 486 阅读 · 0 评论 -
springmvc返回json
这里用到了一个接口,HttpMessageConverter接口,该接口可以将请求信息转为所对应的入参,将返回结果转为对应类型的响应信息,Spring内置了许多HttpMessageConverter,如MappingJackson2HttpMessageConverter、StringHttpMessageConverter等。现在很多项目已经前后端分离了,不再使用jsp或者使用jsp但是数据使用ajax来获取,实现局部刷新的效果,那么springmvc中如何不返回页面而返回页面所需要的数据呢。原创 2024-05-13 10:21:21 · 352 阅读 · 0 评论 -
springmvc拦截器
注意:拦截器是springmvc提供的功能,过滤器是javaee中提供的原生功能,过滤器在DispatcherServlet之前执行,拦截器在DispatcherServlet执行过程中调用。首先这里先区分一下过滤器Filter和拦截器Interceptor,Filter是Servlet中提供的功能,而Interceptor是SpringMVC的。在springmvc中使用拦截器,对请求进行拦截处理首先需要实现HandlerInterceptor接口,然后重写该接口中的三个方法。调用postHandle。原创 2024-05-12 12:20:20 · 326 阅读 · 0 评论 -
springmvc处理模型数据
可以放到方法上或者参数上,它将方法参数或方法返回值绑定到命名中的Model属性中,然后将其公开给Web视图。另一方面,当用作方法参数时,它表示应从模型中检索参数。用来处理绑定过程中的错误,使用@Vaild注解标注在方法参数上,会对参数对象进行校验,校验结果放在BindingResult对象中。Map及Model:入参为Model、ModelMap或Map时,处理方法返回时,Map中的数据会自动添加到模型中。很多情况下页面上需要很多数据,单单返回页面是不行的,那么springmvc如何将数据返回到该页面呢。原创 2024-05-11 09:56:56 · 467 阅读 · 1 评论 -
springmvc数据绑定
DataBinder调用装配在springmvc上下文中的ConversionService组件进行数据类型转换、数据格式化工作。org.springframework.core.convert.ConversionService是springmvc中进行数据类型转换的接口。调用Vaildator组件对已经绑定了请求消息的入参对象进行数据合法性检验,并最终生成数据绑定结果BindingData对象。springmvc抽取BindingResult中的入参对象和校验错误对象,将他们赋给处理方法的响应入参。原创 2024-05-10 10:18:09 · 394 阅读 · 1 评论 -
springmvc核心流程
DispatcherServlet调用HandlerMapping映射处理器,根据url找到具体的处理器,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)返回给DispatcherServlet,通过策略模式,很容易添加新的映射策略。View进行渲染,View会根据传进来的Model模型进行渲染,此处的Model实际是一个Map。spring3.2新功能。原创 2024-05-09 09:52:15 · 634 阅读 · 0 评论 -
springmvc国际化
之前javaweb的时候就是用过国际化,而springmvc作为一个javaweb的框架,肯定也是支持国际化的,其建立在java国际化的基础之上,通过不同国家或语言的消息资源,通过ResourceBundle加载指定的Locale对应的资源文件,在取得该资源文件中指定key对应的消息。在springmvc中选择语言区域,可以使用语言区域解析器,而LocaleResolver就是springmvc中提供的区域解析器接口,实现类有。原创 2022-10-25 17:12:55 · 455 阅读 · 0 评论 -
springmvc文件上传
在Servlet3.0中配置的话,需要在web.xml中为DispatcherServlet添加一个multipart-config元素,或者通过编程的方式使用MultipartConfigElement进行注册,不允许在MultipartResolver中配置这些信息。StandardServletMultipartResolver:依赖于Servlet3.0对multipart的支持,如果没有使用Servlet3.0的容器,那么只能使用CommonsMultipartResolver。原创 2022-10-23 14:40:40 · 374 阅读 · 0 评论 -
RequestBodyAdvice和ResponseBodyAdvice
该接口是在消息体被HttpMessageConverter消息解析器写入之前执行的。该接口是在获取@RequestBody参数数据之前进行处理的。在spring4中新添加的两个接口。原创 2022-10-20 12:02:27 · 610 阅读 · 0 评论 -
springmvc参数解析
现在使用这种格式的比较多,报文会在请求体内,而不是拼接到地址中,使用springmvc接收时使用@RequestBody注解标注,使用到的参数处理器为RequestResponseBodyMethodProcessor,默认会用到MappingJackson2HttpMessageConverter进行参数类型的转换,底层依赖到Jackson相关的包。原创 2022-10-18 10:23:09 · 451 阅读 · 0 评论 -
spring获取当前request
使用RequestContextHolder.currentRequestAttributes()获取的RequestAttributes对象是线程局部变量(ThreadLocal),request对象也是线程局部变量。有时候需要在处理业务的时候用到request对象,可以使用该方法获取。原创 2024-09-19 12:00:02 · 1675 阅读 · 0 评论 -
springmvc注解的使用
可以放到方法上或者参数上,它将方法参数或方法返回值绑定到命名中的Model属性中,然后将其公开给Web视图。默认情况下Spring MVC将模型中的数据存储到request域中,当一个请求结束后,数据就失效了,如果要跨页面使用,那么需要使用到session,而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中。标记在方法的参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中,便于View层使用。如:get/{id}原创 2022-10-13 14:42:39 · 439 阅读 · 0 评论 -
使用springSession完成分布式session
分布式session可以使用spring session来进行实现,由于HttpRequest的Wrapper功能,许多HttpRequest中的方法都可以进行替换来进行自定义的重写,所以可以将getSession方法重写掉,然后进行自定义的session存储和处理,当然了,你能想到的,一般都是早就有人已经实现了,就不重复造轮子了。启动项目之后正常的向往常一样的操作session,就可以看到redis中存有session了。这里演示的是将session存储在redis中,所需要的依赖。原创 2022-10-11 14:19:32 · 401 阅读 · 0 评论 -
spring与springmvc整合
原文链接http://zhhll.icu/2021/02/12/%E6%A1%86%E6%9E%B6/springmvc/spring%E4%B8%8Espringmvc%E6%95%B4%E5%90%88/spring与springmvc整合在项目中使用springmvc的时候,由于spring和springmvc是同源的,有时候大家会把所有的配置都扔到springmvc的配置文件中,而不去区分spring和springmvc的配置,而我习惯于把两个配置拆分开来,spring来配置数据源、事务以及和其原创 2024-09-19 11:54:26 · 927 阅读 · 1 评论 -
springmvc核心流程及配置
原文链接http://zhhll.icu/2020/06/14/%E6%A1%86%E6%9E%B6/springmvc/springmvc%E6%A0%B8%E5%BF%83%E6%B5%81%E7%A8%8B%E5%8F%8A%E9%85%8D%E7%BD%AE/核心流程及配置核心流程首先用户发送请求-------->DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为同一访问点,进行全局的流程控制DispatcherServ原创 2021-03-02 09:29:49 · 259 阅读 · 1 评论