第一次上手springmvc+mybatis

本文介绍了如何利用SpringMVC框架实现题库去重任务,详细解释了各层职责分离、控制器与视图的关联、响应格式定制及控制反转的概念。重点阐述了如何通过接口注入实现组件依赖的解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   最近在IT面试网做实习,分配的任务是题库去重,之前一直使用php开发很挫的网页,一直想找机会上手mvc框架,有幸这次接触springmvc框架,感受到了分层的好处。

   springmvc有效的将表示层(View),控制层(Controller),业务逻辑层(Service),数据访问层(分离开来)。前台jsp负责响应用户输入,展示页面,控制器负责转发请求给Model,需要@Controller声明,Model在把内容传回给视图,具体的业务由Service实现,需要@Service注解声明,Dao只需我们定义接口,配置xml,由mybatis负责实现对象关系映射。

  视图和控制器通过@RequestMapping注解关联,method = RequestMethod.GET代表用GET方法请求URI会触发控制器,而method = RequestMethod.POST,代表表单用POST方法提交表单会触发对应的控制器。@ModelAttribute注解可以自动将表单中填充的内容封装到注解的对象中,前提是对象的域与表单的name 一一对应。

  控制器的返回值类型前面加@ResponseBody时代表返回的不是页面的地址(要跳转得加redirect:)而是将一定格式的数据(如json格式)返回给当前页面,这样跳转只能在当前页面的js中实现了。

HTTP响应的格式如下

HTTP/1.1 200 OK
Date: Sat, 31 Dec 2005 23:59:59 GMT
Content-Type: text/json;charset=ISO-8859-1
Content-Length: 122

其他头部信息

空行
Response的Body

 可见,可以自定义controller返回的数据类型,然后spring负责将数据序列化(如果是自定义对象的话),走HTTP协议到页面,再通过ajax接收json格式的数据,解析显示在页面上。

   何谓控制反转?spring中的控制器类的实例化不再是由程序员new一个了,而是由spring框架控制其生命周期,类何时创建何时调用何时销毁都由spring容器控制,不是由某个程序员所写的类控制。控制反转又称为依赖注入,根本目的是增加代码的可扩展性,使组件依赖于抽象,当组件要与其他对象发生依赖关系时,通过抽象来注入依赖的实际对象。注入的方式有三种,1.接口注入 2.set注入 3.构造注入 现在项目中主要用到了接口注入。


 spring3.1之后RedirectAttributes  .addFlashAttribute重定向后只能将数据传到新页面的前台,?param=1&param=2只能将值传到新页面的后台,request.getParamer获取

  

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值