SpringMVC学习笔记(1)

188 阅读3分钟

preface:

在b站看的狂神说的springmvc手痒痒的还是写个学习记录比较好,尤其是一些操作部分,关于概念的一些问题都参考狂神的笔记视频课程也在b站可以看。另外,这个教程也有两三年左右了,也不一定是目前实际开发中最新颖的技术了(看到弹幕有人吐槽,提前预防一下0.0),只是小白向学习记录,如有错误还望各位xdm指正。

ps:springmvc官方文档

1、回顾MVC

1.1、什么是MVC

1.2、Model1时代

1.3、Model2时代

1.4、回顾Servlet

1.创建maven项目(普通一点,不要勾选)建好父项目后,删掉默认生成的src(因为用不到,不删其实影响不到,就是用不到),然后导入依赖(尽量不要直接复制,自己手打一遍,直接复制,可能会出现导入不成功的现象)

    <!--导入依赖-->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

可以在这里看到它正在努力的下包 image.png

2.建立一个Moudle:springmvc-01,并添加Web app的支持。

还是添加一个普通点的项目,啥都别选。然后按下图方式添加web支持

image.png

image.png

image.png

  1. 导入servlet 和 jsp 的 jar 依赖(这里吧,其实不导入似乎也没错,这里先跟着教程做,以后有遇到问题再解决)

image.png

4.编写一个Servlet类,用来处理用户的请求(在这一步看到弹幕里有不同的处理方式,等我学会hello world怎么写了,再去研究吧)

//要注意先建个package包,再建类,,,我事后补上的,把这个类丢进包里的,

image.png 新建的只是一个普通的类,需要再继承一下HttpServlet image.png

重写父亲的两个方法,doGet和doPost image.png

public class hello extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.获取前端参数
        String method = req.getParameter("method");
        if (method.equals("add")){
            req.getSession().setAttribute("msg","执行了add方法");
        }
        if (method.equals("delete")){
            req.getSession().setAttribute("msg","执行了delete方法");
        }
        //2.调用业务层//没有业务,先不管

        //3.视图转发或重定向
        //需要一个页面,在web/WEB-INF下新建一个directory,命名为jsp
        //再新建一个页面,名为test.jsp
        //在body标签里,用${msg}获取到msg
        req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);//转发
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);//doPost调用doGet,实现复用
    }
}

5.在web/WEB_INF/web.xml 种配置servlet image.png

6.此时需要另外一个页面

image.png

7.配置tomcat,务必按照视频中的一模一样的来,会成功的

//假设没有tomcat的话,可以参考:安装tomcat

image.png

image.png

9.启动成功,测试一下

image.png

localhost:8080/hello?method=add

localhost:8080/hello?method=delete

image.png

image.png

MVC框架要做哪些事情

  1. 将url映射到java类或java类的方法 .
  2. 封装用户提交的数据 .
  3. 处理请求--调用相关的业务处理--封装响应数据 .
  4. 将响应的数据进行渲染 . jsp / html 等表示层数据

说明: 常见的服务器端MVC框架有:Struts、Spring MVC、ASP.NET MVC、Zend Framework、JSF;常见前端MVC框架:vue、angularjs、react、backbone;由MVC演化出了另外一些模式如:MVP、MVVM 等等....

2、什么是SpringMVC

2.1、概述

Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。

2.2、中心控制器

2.3、SpringMVC执行原理