【SpringMVC】第一个springmvc项目

需求:

用户在页面发起一个请求, 请求交给springmvc的控制器对象,并显示请求的处理结果(在结果页面显示一个欢迎语句)。

实现步骤:

  1. 新建web maven工程

  2. 加入依赖
    spring-webmvc依赖,间接把spring的依赖都加入到项目
    jsp,servlet依赖

  3. 重点: 在web.xml中注册springmvc框架的核心对象DispatcherServlet
    1)DispatcherServlet叫做中央调度器, 是一个servlet, 它的父类是继承HttpServlet
    2)DispatcherServlet页叫做前端控制器(front controller)
    3)DispatcherServlet负责接收用户提交的请求, 调用其它的控制器对象,并把请求的处理结果显示给用户

  4. 创建一个发起请求的页面 index.jsp

  5. 创建控制器(处理器)类
    1)在类的上面加入@Controller注解,创建对象,并放入到springmvc容器中
    2)在类中的方法上面加入@RequestMapping注解。

  6. 创建一个作为结果的jsp,显示请求的处理结果。

  7. 创建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+.jsp
         mv.setViewName("show");
        //返回mv
        return mv;
    }
}

【SpringMVC】第一个springmvc项目_第1张图片

你可能感兴趣的:(#,SpringMVC,servlet,java,spring)