需求:
用户在页面发起一个请求, 请求交给springmvc的控制器对象,并显示请求的处理结果(在结果页面显示一个欢迎语句)。
实现步骤:
-
新建web maven工程
-
加入依赖
spring-webmvc依赖,间接把spring的依赖都加入到项目
jsp,servlet依赖 -
重点: 在web.xml中注册springmvc框架的核心对象DispatcherServlet
1)DispatcherServlet叫做中央调度器, 是一个servlet, 它的父类是继承HttpServlet
2)DispatcherServlet页叫做前端控制器(front controller)
3)DispatcherServlet负责接收用户提交的请求, 调用其它的控制器对象,并把请求的处理结果显示给用户 -
创建一个发起请求的页面 index.jsp
-
创建控制器(处理器)类
1)在类的上面加入@Controller注解,创建对象,并放入到springmvc容器中
2)在类中的方法上面加入@RequestMapping注解。 -
创建一个作为结果的jsp,显示请求的处理结果。
-
创建springmvc的配置文件(spring的配置文件一样)
1)声明组件扫描器, 指定@Controller注解所在的包名
2)声明视图解析器。帮助处理视图的。
*** @Controller:创建处理器对象,对象放在springmvc容器中* 位置:在类的上面* 类似spring中的@service @Component一样,都是创建对象的* 能处理请求的都是控制器(处理器):MyController能处理请求,叫做back controller*/
@Controller
public class MyController {/*处理用户提交的请求,springmvc中是使用方法来处理的方式是自定义的,可以有多种返回值,多种参数,方法名称自定义*//*** 准备使用doSome方法处理some.do请求* @RequestMapping:请求映射,作用是把一个请求地址和一个方法绑定在一起。* 一个请求指定一个方法处理* 属性: 1. value是一个String,表示请求的uri地址的.* value的值必须是唯一的,不能是重复的。* 在使用时,推荐地址以"/"* 位置: 1. 在方法的上面,常用的* 2. 在类的上面* 说明:使用RequestMapping修饰的方法叫做处理器方法或者控制器方法* 使用@RequestMapping修饰的方法可以处理请求的,类似Servlet中的doGet,doPost** 返回值:ModelAndView 表示本次请求的处理结果* Model:数据,请求处理完成后,要显示给用户的数据* View: 视图,比如jsp等等*/@RequestMapping(value = {"/some.do","/first.do"})public ModelAndView doSome(){//处理some.do请求,想当于Service调用处理完成了。ModelAndView mv= new ModelAndView();//添加数据mv.addObject("msg","欢迎使用springmvc做开发");mv.addObject("fun","执行的是doSome方法");//指定视图,指定视图的完整路径//框架对视图执行的forword操作,request.getRequestDispatcher("/show.jsp).forward(...)//mv.setViewName("/WEB-INF/view/show.jsp");//当配置了视图解析器,可以使用逻辑名称(文件名),指定视图//框架会使用视图解析器的前缀+逻辑名称+后缀 组成完成路径,这里就是字符连接操作///WEB-INF/view/+show+.jspmv.setViewName("show");//返回mvreturn mv;}
}