springmvc框架知识重点

1. 什么是springmvc?
Springmvc是一个基于mvc的web框架,它是spring框架的一个模块,两者无需通过中间整合进行整合。

2. Springmvc的优点
(1)Spring MVC中提供一个DispatcherServlet, 无需额外开发。
(2)springMVC中使用基于xml的配置文件,可以编辑,无需重新编译应用程序。
(3)springMVC实例化控制器,并根据用户输入来构造bean.
(4)springMVC可以自动绑定用户输入,并正确的转换数据类型。例如,springMVC能自动解析字 符串,并设置float或decimal类型的属性。
(5)springMVC可以检验用户输入,若校验不通过,则重定向回输入表单。输入校验是可选的, 支持编码方式以及声明。关于这一点,springMVC内置了常见的校验器。
(6)springMVC是spring框架的一部分。可以利用spring提供的其它能力。
(7)springMVC支持国际化和本地化,支持根据用户区域显示多国语言。
(8)springMVC支持多种视图技术,最常见的JSP技术以及其它技术包括Velocity和FreeMarker
3. Springmvc框架的执行步骤
第一步:用户发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求处理器映射器查找Handler
第三步:处理器映射器向前端控制器返回Handler
第四步:前端控制器调用处理器适配器去执行Handler
第五步:处理器适配器去执行Handler
第六步:Handler执行完成给适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
ModelAndView是springmvc框架的一个底层对象,包括Model和View
第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑图名解析成真正的视图(jsp)
第九步:视图解析器向前端控制器返回View
第十步:前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域
第十一步:前端控制器向用户响应结果

4. Springmvc框架常用注解
@Controller
@Controller用于标记在一个类上,使用它标记的类就是一个springmvc Controller对象。分发处理器将会扫描使用了该注解的方法,并检测该方法是否使用了@RequestMapping注解。

@RequestMapping
该注解是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

@Resource和@Autowired
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是spring支持该注解的注入。
共同点:
两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。

不同点:
@Autowired是spring提供的注解。@Autowired注解是按照类型(byType)装配依赖对象,默认情况下他要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。
@Resource默认按照byName自动注入,@Resource有两个重要的属性:name和type,而spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用bytype自动注入策略。如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略。

@ModelAttribute和@SessionAttributes
代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用

@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数,。

@RequestParam
主要用于在springmvc后台控制层获取参数,类似一种是request.getParameter(“name”),他有三个常用参数:defaultValue=”0”,required=false,value=“isApp”;defaultValue表示设置默认值

@ResponseBody
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区

使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

@Component
相当于通用的注解,当不知道一些类归到那个层时使用,但是不建议。

@Repository
用于注解dao层,在daoImpl类上面注解

5. Springmvc怎么样设定重定向和转发的?
转发:在返回值前面加“forward:”就可以让结果转发,譬如”forward:user.do?name=method”
重定向:在返回值前面加“redirect:”就可以让返回值重定向,譬如“redirect:http://www.baidu.com

6. Springmvc中的控制器的注解一般用哪个,有没有别的注解可以替代?
一般用@Controller注解,表示是控制层,不能用别的注解替代。

7. Springmvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?
是单例模式,所以在多线程访问的时候又线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段。

8. @RequestMapping注解用在类上面有什么作用?
是一个用来处理请求地址映射的注解,可以用于类或方法上。用于类上,表示类中所有响应请求的方法都是以该地址作为父路径。

9. 如果前台有很多参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
直接在方法中声明这个对象,springmvc就自动会把属性赋值到这个对象里面。

10. Springmvc中有个类把视图和数据都合并的一起的,叫什么?
叫做ModelAndView。

11. 当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理?
要加上@ResponseBody注解。

12. Sprigmvc的异常处理
可以将异常抛给Spring框架,有Spring框架来处理;我们只需要配置简单的异常处理器,在异常处理器添视图页面即可。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值