SpringMVC的快速入门

开发步骤

1.首先需要在pom.xml里面导包

导包 Spring核心容器包(4个),日志包(两个 commons-logging / log4j ),aop(面向切面包) ,web(web包) webmvc ,jstl (自定义标签库) ,servlet ,jsp

建包图解

springmvc 打包jar springmvc导包_mvc

导包代码
必须要导入这些包,才能方便使用

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>

        <!--引入web坐标依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>

        <!--引入webmvc坐标依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>

        <!--引入jstl坐标依赖-->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!--引入servlet坐标依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

        <!--引入jsp坐标依赖-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.2.1</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

2.web页面(前端的事我是学java的不写前端谢谢)

3.创建数据库(好吧这里也不写了,主要是讲SpringMVC的运用)

4.创建一个包叫做controller 这就是我们的web包

5.在controller包下面建一个类RoleController web层role控制器 并且在类上面添加注解 @Controller 标识交给Spring容器管理

6.书写展示所有角色信息的方法,,并在该方法上面添加注解@RequestMapping注解这是请求映射注解,把请求路由写在里面

RoleController类代码

/**
 * web层的role控制器
 *
 * @Repository   @Component   @Service   @Controller
 * 目的都是交给Spring容器管理
 *
 */
@Controller  //交给Spring容器管理
//假定请求路由事   localhost:8080/day70_hello/role/listRoles
public class RoleController{
    ArrayList<Role> listRole = null;


    //定义方法
    @RequestMapping("/role/listRoles")  //这是请求映射注解,把请求路由写在里面,,我们页面的地址就是按照这个路由写的
    public ModelAndView getAllRoles(){
        /**ModelAndView  这是一个特别牛逼的类
         * Model是一个模型用于封装数据  主要事用于封装数据并且传到页面上去
         * View  视图  就是你需要跳转到哪一个页面资源·1
         *
          */
        //他是模型视图类,借助它完成数据的封装到页面的跳转
        ModelAndView mav = new ModelAndView();
        //假定已经拿到数据库中的数据
        listRole = new ArrayList<>();
        listRole.add(new Role(1,"学生","学习",new Date()));
        listRole.add(new Role(2,"老师","学习",new Date()));
        listRole.add(new Role(3,"副教授","学习",new Date()));
        listRole.add(new Role(4,"教授","学习",new Date()));
        listRole.add(new Role(5,"院士","学习",new Date()));
        listRole.add(new Role(6,"国士","学习",new Date()));
        //需要把listRole数据传输到页面中并展示出来
        //借助于SpringMVC来替代Servlet来完后曾Servlet的工作、
        //把数据放入ModelAndView对象之中,
        mav.addObject("list",listRole);//把值存到ModelAndView里面并指定key值  key值事更具前端里面来定的
        //实现页面跳转---指定跳转地址/WEB-INF/view/role/roleList.jsp
        mav.setViewName("/role/roleList");//因为我们写了视图解析器的前后缀,所以这里要删除前后缀重复的省略了/WEB-INF/view和.jsp
        //返回ModelAndView
        return mav;
    }

7.新建springmvc.xml文件扫描 controller包

8.前端控制器配置在web.xml里面加载DispatcherServlet类 前端控制器,这样就能把spring的主配置为文件扫描到这个web.xml里面

springmvc.xml代码演示

<!--扫描controller包让他加载到spring容器中-->
    <context:component-scan base-package="com.zhiyou100.web.controller"/>

    <!--
    <!–配置处理器映射器–>
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>

    <!–配置处理器适配器–>
     <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
    -->

    <!--注解驱动:配置处理器映射器和配置处理器适配器--><!--由这一个代码替代上面两个代码-->
    <mvc:annotation-driven/>

    <!--配置视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view"/><!--前缀:免得每次写页面都要写一大堆-->
        <property name="suffix" value=".jsp"/><!--后缀: 提取后面相同的部分,后面的就可以不用写了-->
    </bean>



    <!--静态资源放行-->
    <!--方式一:采用tomcat内置的默认处理方式  -->
    <mvc:default-servlet-handler/><!--开启tomcat的缺省配置处理方式-->

    <!--方式二:手动映射-->
    <!--/img/**  表示img文件夹下的资源和它下面子文件的资源-->
    <mvc:resources mapping="/img/**" location="/img/"/>
    <mvc:resources mapping="/css/**" location="/css/"/>
    <mvc:resources mapping="/js/**" location="/js/"/>
    <mvc:resources mapping="/lib/**" location="/lib/"/>