1.第一个springmvc文件
1.用maven搭建项目,选后缀为webapp的创建
2.配置pom.xml。 加入servlet依赖,加入springmvc依赖。添加插件。
3.在wen.xml中注册中央调度器 DispatcherServlet
4.在resources包中配置springmvc.xml文件
5.创建处理器:
即在controller类上加注解@Controller
在controller类中方法上加注解RequestMapping(value="/some.do")
some.do即处理index.jsp中从页面传来的数据
在controller类中方法
addObject往mv中添加从页面传来的数据。
setViewName表示在处理之后跳转到show.jsp。这里用了视图解析器。
6.在springmvc.xml文件中声明组件扫描器和注解驱动
7.定义跳转之后的目标页面
在 webapp下WEB-INF 目录下新建一个子目录view,在其中新建一个 jsp 页面 show.jsp
这里的myname,myage是从controller类中方法传来的数据
8.在springmvc.xml中修改视图解析器的注册
9.使用 SpringMVC 框架 web 请求处理顺序
10.SpringMVC 的 MVC 组件
11.SpringMVC 执行流程
2.SpringMVC 注解式开发
1.@RequestMapping标识一个类。
即@RequestMapping在一个类上面是为了:设置映射请求的请求路径的初始信息
2.对提交请求方式的定义
GET和POST方法
此时要修改index页面
3.处理器方法的参数
即在controller类方法中加入多个形参
4.请求参数中文乱码问题
比如在传入字符串为汉字时会乱码
处理方法:在 web.xml 中注册字符集过滤器,即可解决 Spring 的请求参数的中文乱码问题。不过, 最好将该过滤器注册在其它过滤器之前。因为过滤器的执行是按照其注册顺序进行的。 直接在项目 receiveParameters-property 上进行修改。
5.校正请求参数名@RequestParam
好文章:@RequestParam注解的详细介绍 - tomingto - 博客园
1.处理jsp参数与controller方法参数不同
如下,方法中的name即为jsp中的rname
2.可选的请求参数required
默认情况下,需要使用@RequestParam注释的方法参数 。这意味着如果请求中不存在该参数,我们将收到错误
如默认情况下(required=true)String类中不传入值,则会报错。改为false,可以无参数传入不,报错,值为null
处理方法:可在value后加一个required
3.默认值
无参数传入时,默认返回值为test
6.处理器方法的返回值(重点:看项目的代码)
第一种:ModelAndView
第二种:String
第三种:无返回值 void
第四种:返回自定义类型对象
7.<url-pattern>*.do</url-pattern>和<url-pattern>/</url-pattern>区别
(1) *.do 在没有特殊要求的情况下,SpringMVC 的中央调度器 DispatcherServlet 的 常使用后辍匹配方式,如写为*.do 或者 *.action, *.mvc 等。
(2) / 可以写为/,因为 DispatcherServlet 会将向静态资源的获取请求,例如.css、.js、.jpg、.png 等资源的获取请求,当作是一个普通的 Controller 请求。中央调度器会调用处理器映射器为 其查找相应的处理器。当然也是找不到的,所以在这种情况下,所有的静态资源获取请求也 均会报 404 错误
3.SpringMVC 核心技术
1. 请求重定向和转发
请求转发
处理器方法返回 ModelAndView 时,需在 setViewName()指定的视图前添加 forward:,且 此时的视图不再与视图解析器一同工作,这样可以在配置了解析器时指定不同位置的视图。 视图页面必须写出相对于项目根的路径。forward 操作不需要视图解析器。
请求重定向
在处理器方法返回的视图字符串的前面添加 redirect:,则可实现重定向跳转。
2.异常处理
@ExceptionHandler 注解
在controller类方法名上加@ExceptionHandler(value=XXexception.class)
①自定义异常类
②修改 Controller 抛出异常
③定义异常响应页面
3 拦截器
①注册拦截器 在springmvc中注册拦截器