SpringMVC(一)

1. MVC模型

MVC(模型-视图-控制器)模型是区别于过去以页面为中心的模式,SpringMVC使用DispacherServlet(一个Servlet)为控制器,模型采用POJO(Plain Old Java Object),POJO使用javaBean来持有模型状态,并将业务逻辑放到一个Action类中去,一个Action类可以支持多个action,一个action对应一个可执行操作。

2. Servlet控制器

自己实现的可以用来充当控制器的Servlet需要继承javax.servlet.http.HttpServlet类,其中,daGet和doPost方法为其核心。
Servlet处理HttpServletRequest请求的大致流程:

  1. 获取请求的url与action名
  2. 执行对应不同对象的业务逻辑(action)
  3. 转发请求到试图

3. SpringMVC

DispacherServlet——控制器,需要完成的工作:

  1. 根据url决定调用相应的action
  2. 实例化控制器类(实现了Conroller的控制器实现类,每一个实现类都只能处理一个动作)
  3. 更具请求的参数构造表单中的bean
  4. 调用控制器类的方法
  5. 跳转视图

3.1 Controller接口

接口中唯一的方法:handleRequest方法

ModelAndView handleRequest(HttpSrevletRequest request,HttpServletResponse reponse)

ModAndView对象包含了视图路径或者视图路径与模型。
SpringMVC的工作流程与Servlet充当控制器的模型基本一致。主要的配置是在web.xml中配置DispacherServlet以及将“/”映射到该servlet,同时还需创建springMVC的xml配置文件,其中主要配置实现的的controller类信息。此外可以配置视图解析器(org.springframework.web.servlet.view.InternalResolver)中的前缀和后缀等的相关信息,简化url中的视图路径。

3.2 基于注解的Controller

基于注解的控制器的优点:

  1. 一个控制器类可以处理多个动作
  2. 基于注解的控制器的请求映射不需要手动写入配置文件(@RequestMapping)
    最主要的两个注解类型:Controller 和 RequestMapping
  3. Spring使用扫描机制来找到所有的基于注解的控制器类(需要配置包扫描路径)
  4. RequestMapping映射一个请求与一个方法,可以用来注解一个类或者方法。
  5. 两个主要参数:value 和 method,只映射一个值是可以省略value,多种method:method = {RequestMethod.POST,RequestMethod PUT}
    请求处理方法:
    常用的接受参数:
    -javax.servlet.http.HttpSrevletRequest或servlet.ServletRequest
    -javax.servlet.http.HttpSrevletResponse或servlet.ServletResponse
    -javax.servlet.http.HttpSession
    -java.io.InputStream或java.io.Reader
    -java.io.OutputStream或java.io.Writer
    -命令或者表单对象
    -被@PathVariable、@RequestParam、@RequesHeader、@RequestBody或@RequestPart注解的对象
    常用的返回参数:
    -ModelAndView
    -Model
    -View
    -代表逻辑视图名的String
    -void
    -其他任意类型,Spring会将其视为输出给View的对象

使用@Service和@Autowired进行依赖注入。

重定向要经过客户端,而转发没有,因而转发更快。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值