springmvc概述

注解式开发

springmvc:是基于spring的一个框架,实际上就是spring的一个模块。专门

做web开发的。

理解:是servlet的一个升级

web开发底层是servlet,框架是在servlet基础上加入了一些功能。让你做web

开发方便一些。

springmvc实际上就是一个spring。spring是容器,ioc能够管理对象,使用

springmvc能够创建对线,放入到容器中(springmvc容器),springmvc容器

中放的是控制器对象。

我们要做的是使用@controller创建控制器对象,把对象放入到springmvc容器中,

把创建的对象作为控制器使用,这个控制器对象能接受用户的请求,显示处理结果,

就当做是一个servlet使用

使用@controller注解创建的是一个普通类的对象,不是servlet。springmvc赋予了

对象一些额外的功能

web访问大致流程

web开发底层是servlet,springmvc中有一个对象是servlet:DispatherServlet

DispatherServlet(中央调度器):负责接受用户的所有请求,用户把请求给了

DispatherServlet。DispatherServlet再把请求转发给我们的Controller对象,最

后是Controller对象处理请求

index.jsp----DispatherServlet(中央调度器)--转发, 分配给--Controller对象(@Controller创建)

***************************************************************

servlet的处理流程

1.发起some.do--tomcat(web。xml--url--pattern知道 *.do的请求给中央调度器)

2.根据springmvc.xml知道some.do对应的方法了some.do--dosome(),

3.中央调度器把some.do转发给控制类的dosome方法了

4.中央调度器把some.do转发给控制类的dosome()方法了

5.框架执行dosome()把得到的modelandview进行处理,转发到show.jsp

上面的过程简化的方式

some.do--中央调度器--控制类对象

中央调度器

1.负责创建springmvc容器对象,读取xml配置文件,创建文件中的控制类对象。

2.负责接受用户的请求,分配给自定义的控制类对象

springmvc执行过程源代码分析

1.tomcat启动,创建容器的过程。

通过load-on-start标签指定的1,创建中央控制器对象,中央调度器它的父类是继承

httpservlet的,它是一个servlet,在被创建时,会执行init()方法。

在init()方法中

创建容器,读取配置文件,把容器对象放入到servletcontext中。

上面创建容器作用:创建@controller注解所在的类的对象,创建控制类对象。

这个对象放入到springmvc的容器中,容器是map,类似map.put("mycontrller",控制类对象)

2.请求的处理过程

执行servlet的service(),doservice

doDispatch会调用控制类的dosome()方法。

使用modelview接受参数有两种方便的形式

1.对应请求的方法(参数)

1)如果前端参数和后端参数不一样,使用requestParam注解

2.多个参数使用vo对象接受参数更方便一点.

******************************************************

modelviw返回值:

1.modelview

2.String :返回的是一个逻辑路径或绝对路径,是一个重定向.底层是forwrod,如果想添加

参数,自己再添加一个HttpServletRequest参数.

处理器方法返回String,String表示数据的,不是视图.

* 区分返回值String是数据,还是视图,看有没有@Responsebody注解

* .如果有responsebody注解,返回String就是数据,反之就是视图.

*/

/**

* 默认使用8859-1作为字符集,导致中文乱码

* 解决方案:给requestmapping增加一个属性 produces,使用这个属性指定新的 contenxttype

*/

3.void:响应ajax请求

1)获取参数

2)利用jackson转换为json格式

3)返回前端.

4.object:响应json对象

**********************

springmvc访问静态文件

一条语句访问多个静态文件

都放在static文件夹下边,resource声明static文件夹

***********************************************************'

SSM整合例子

************************************************************

创建dao和mapper.

1.service接口中声明和dao相同用处的方法.

2.service实现类中.有Studentdao的引用.

3.重写方法

4.Controller中直接使用service实现类的方法.从而访问数据库

forword实现转发操作:forword:完整路径.

mv.setview("forword:c.jsp")

mv.setview("")

http://localhost:8080/myweb/student/doForward.do

mv.setViewName("forward:/success.jsp");

redirect重定向跳转:redirect:完整路径.

redirect不能访问web-inf受保护的资源

redirect中的jsp的el表达式取不到值原因:

el表达式只会在四大作用域中找值,重定向是两个.request.

取参数的值:EL表达式param.myname.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值