springmvc配置

SpringMVC简单理解

旧街凉风 提交于 2019-12-09 01:36:14
SpringMVC是一个web底层框架,用来简化我们获取客户端传来数据的方式和简化返回数据的。它的底层源码也看过,了解那么一点,首先来说一下它的底层原理。 底层原理: 用户向服务器发送请求,请求被前端控制器DispatcherServet截获,请求查询Handler,调用处理器映射器HandlerMapping,根据xml配置和注解找到具体的Handler,底层源码是通过一个doService()方法,在这个方法里面还调用了另一个方法doDispatcher(),在这个方法里面,根据发送过来的请求路径,利用for循环查询相匹配的handle,返回一个处理器执行链(包括请求要处理的handler对象和方法)给前端控制器DispatcherServlet,DispatcherServlet调用HandlerAdapter处理器适配器找到controller层,也就是控制器,再调用service层进行业务的处理,执行完返回一个ModleAndView,然后再请求解析视图,DispatcherServlet将ModleAndView传给ViewReslover视图解析器,解析后返回具体的View对象,DispatcherServlet根据View进行视图渲染(将Modle填充至View),最后以jsp或者freemaker的前台页面形式响应用户。 具体的一些应用:

SpringMVC 常用注解

别说谁变了你拦得住时间么 提交于 2019-12-09 01:34:25
1、@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。 @Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式可以管理: <!-- 方式一 --> < bean class ="com.cqvie.handler.HelloWorld" /> <!-- 方式二 --> < context:component-scan base-package = "com.cqvie" /> <!-- 路径写到controller的上一层 --> 此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。为了先对Controller 有一个初步的印象,以下先定义一个简单的Controller

理解springmvc中的Controller

倾然丶 夕夏残阳落幕 提交于 2019-12-09 01:32:53
如何让一个普通类成为Controller? 方案一:实现接口Controller 解析:handleRequest(request,response) 方案二:继承AbstractController 解析:handleRequestInternal(request,response) 若处理器继承自AbstractController类,那么该控制器就具有了一些新功能。因为AbstractController类还继承自一个父类WebContentGenerator,WebContentGenerator具有supportMethods属性 部分源码实现: 原理: 发现AbstractController类中有一个handleRequest()方法,用到了模板方法设计模式。 保证该方法中去调度了一个抽象方法。抽象方法在子类中根据业务需求被重写。 applicationContext.xml: 还可以设置支持的HTTP数据提交方式。默认支持GET/POST/HEAD,限定请求提交方式 地址栏默认的是GET请求,输入的Post请求则报405 如果想在一个Controller中定义N个方法,让他们分别执行,如何实现?[继承自MultiActionController] 其次该如何去匹配这些方法?在这里引出一个方法名称解析器[MethodNameResolver]。 作用

Spring和SpringMVC常用注解

梦想的初衷 提交于 2019-12-09 01:19:17
注解 目标 描述 @After 方法 定义最终增强 @AfterReturning 方法 定义后置增强 @AfterThrowing 方法 定义异常抛出增强 @Around 方法 定义环绕增强 @Aspect 类 定义切面 @Autowired 属性或方法 实现Bean的装配,默认按类型装配 @Before 方法 定义前置增强 @Cacheable 方法 声明一个方法的返回值应该被缓存 @CacheFlush 方法 声明一个方法是清空缓存的触发器 @Componet 类 被此注解标注的类都将由Spring容器进行管理,可以标注DAO、Service和Controller等类 @Controller 类 用于标注控制器类 @ControllerAdvice 类 能够将通用的@ExceponHandler、@InitBinder和@ModelAttributes方法收集到一个类中,并应用到所有控制器上 @DateTimeFormat 属性 可以用来格式化java.util.Date 、java.util.Calendar和java.util.Long类型 @ExceptionHandler 方法 配置在局部异常处理时定义异常处理 @InitBinder 方法 添加自定义编辑器 @ModelAttribute 参数或方法 用到参数上,表明此参数的值来源于模型的某个属性;用到方法上

SpringMVC中几个常用注解的用法

我只是一个虾纸丫 提交于 2019-12-09 01:16:23
一、@Controller 以前在编写Controller方法的时候,需要开发者自定义一个Controller类实现Controller接口,实现handleRequest方法返回ModelAndView。并且需要在Spring配置文件中配置Handle,将某个接口与自定义Controller类做映射。 这么做有个复杂的地方在于,一个自定义的Controller类智能处理一个单一请求。而在采用@Contoller注解的方式,可以使接口的定义更加简单,将@Controller标记在某个类上,配合@RequestMapping注解,可以在一个类中定义多个接口,这样使用起来更加灵活。 被@Controller标记的类实际上就是个SpringMVC Controller对象,它是一个控制器类,而@Controller注解在org.springframework.stereotype包下,其中被@RequestMapping标记的方法会被分发处理器扫描识别,将不同的请求分发到对应的接口上。 扫描@Controller: <context:component-scan base-package="com.sunhui.ssm.controller"/> base-package:包的路径。意思就是,启动了报扫描功能,将com.sunhui.ssm

springMVC原理解析及常用注解

六月ゝ 毕业季﹏ 提交于 2019-12-09 01:13:54
SpringMVC框架介绍 SpringMVC就是通过DispatcherServlet将一堆组件串联起来的Web框架。 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。 Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制 Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。 SpringMVC原理图 SpringMVC接口解释 DispatcherServlet接口 : Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前

SpringMVC常用注解及其功能

故事扮演 提交于 2019-12-09 01:13:31
今天面试遇到这个问题,说实话只是使用基本没有真正的去深入的了解与多少标签和这些标签有什么作用,回来以后总结了一下。 @Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为 @RequestMapping用来定义访问的URL,你可以为整个类定义一个(用于整个类不是必须的,如果没有配置,所有的方法的访问路径配置将是完全独立的,没有任何关联) @PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板 @ModelAttribute 1.应用于方法参数,参数可以在页面直接获取,相当于request.setAttribute(,) 2.应用于方法,将任何一个拥有返回值的方法标注上 @ModelAttribute,使其返回值将会进入到模型对象的属性列表中. @ResponseBody 这个注解可以直接放在方法上,表示返回类型将会直接作为HTTP响应字节流输出(不被放置在Model,也不被拦截为视图页面名称)。可以用于ajax @RequestParam是一个可选参数,例如:@RequestParam(“id”) 注解,所以它将和URL所带参数 id进行绑定 如果入参是基本数据类型(如 int、long、float 等),URL 请求参数中一定要有对应的参数,否则将抛出 org.springframework.web.util

springmvc注解列举

我们两清 提交于 2019-12-09 01:10:32
首先在加注解前要配置XML文件哦 1.@Controller 在springMVC中,controller控制器用来处理DispacherServlet分发的请求,它把请求的数据经过业务逻辑层的处理封装成model,返回给view. @Controller用于标记在一个类的上面,如果仅仅只是使用@Controller,还不能真正意义上说他是springMVC的一个控制类。以为这个时候spring 还不认识它。如何才能让spring认识呢,需要将这个控制器交给spring来管理。spring管理控制器有两种方式 a:springmvc的配置文件中定义myController中的bean对象 b:在springMVC的配置文件中告诉spring应该去什么地方找带有@Controller的控制器 < context:component-scan base-package = “com.host.app.web” />路径写到controller的上一层(扫描包详解见下面浅析) 2.@RequestMapping 这个是一个用于处理请求地址映射的注解,既可用于类上面,也可以用于方法上,用于类上,表示类中所有响应请求的方法都是以该地址作为父路径 RequestMapping注解有6个属性 1) value: 指定请求的实际地址 2) method: 指定请求的method类型(get

【springmvc学习】常用注解总结

不打扰是莪最后的温柔 提交于 2019-12-09 01:09:17
@Controller 在springmvc中,我们用它来告诉前端控制器,他这个类是controller,也就是springmvc的一个对象了,我们在 spring .xml配置文件中用<context:component-scan>配置了要扫描这样的类,这样springmvc就可以用它来处理由前端控制器分发的请求了.. @Autowired 在我们的controller中,我们经常在私有定义service的时候使用它,它可以写在字段上或者是方法上,用来装载bean,当spring启动的时候,AutowiredAnnotationBeanPostProcessor将扫描spring容器中的bean,当发现bean中拥有这个注解的时候,就找到和他一样的bean,注入到对应的地方去。他可以用到字段和属性方法中。 @RequestMapping 这个是一个地址映射的注解,可以用在类上或者是方法上,假如是在类上,那就是父路径,这样一个完整的url请求路径就是父路径+子路径。 它里面的属性比较多,例如:@RequestMapping(value = "/editItems", method = { RequestMethod.POST, RequestMethod.GET }) 其中value是代表实际上请求的路径,method里面可以设置请求的类型,例如post,get等

SpringMVC常用注解标签详解

放肆的年华 提交于 2019-12-09 01:04:41
2019独角兽企业重金招聘Python工程师标准>>> 1、 @Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用 @Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。 @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping