潘氏番茄酱

不积跬步无以至千里

导航

SpringMVC第一个程序学习(使用xml配置的方式搭建SpringMVC)

一、SpringMVC和Struts2对比

二、SpringMVC框架搭建

1.引入jar包,需要的jar包如图所示

spring中相关的jar包必须是同一个版本的

maven项目中,pom.xml配置:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.py</groupId>
    <artifactId>springMvcHello1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
<!--         <dependency> -->
<!--             <groupId>commons-logging</groupId> -->
<!--             <artifactId>commons-logging</artifactId> -->
<!--             <version>1.1.1</version> -->
<!--         </dependency> -->
    </dependencies>

    <build>
        <finalName>base</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <target>1.8</target>
                    <source>1.8</source>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

解释一下:

1. commons-logging包是spring中必须依赖的jar包,但是如果通过maven项目管理我们的jar包,maven已经帮助我们将这个包自动引入,所以我们不需要再手动引入此jar包,解释如下图

 

 2. 这个项目中使用的事spring5,spring5默认是jdk8支持,所以,我们的pom.xml中加入了如下的配置

<build>
        <finalName>base</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <target>1.8</target>
                    <source>1.8</source>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

 

2.配置前端控制器

补充:这个引入的命名空间的版本,上图是4.0,但是我本地测试的时候,用4.0的时候,点击alt+/ 没有提示,但是我换成2.5版本之后,有提示;(servlet3.0之后,提倡用注解的方式配置)

3.创建mvc.xml配置文件(这种创建方式是不是只在sts开发环境中才有)

这种创建方式,自动创建的mvc.xml文件中,将命名空间自动引入

 4. 编写HelloController类

这里创建的Controller必须要继承Controller接口,且必须要实现handleRequest方法;

 

补充:在web.xml中,配置mvc.xml中时,使用

<init-param>
<param-name>contextConfigLocation</param-name>    
<param-value>classpath:mvc.xml</param-value>    
</init-param>

其中,param-name的值必须为contextConfigLocation;param-value的值classpath:mvc.xml,这个classpath代表的是在src-main-resources资源目录中查找;

web项目的目录结构:(这里不理解会是个坑)

3. 总结:

 

4. 填坑:

<load-on-startup>1</load-on-startup>:在Tomcat启动的时候就初始化SpringMVC容器;这个值越低越优先启动

<url-pattern>/</url-pattern>:不能写成/*,可写成*.do

<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc.xml</param-value>
</init-param>:初始化参数,告诉DispatcherServlet去哪里找配置文件;如果不写这个配置,系统会报错,会有一个默认的路径,会到WEB-INF路径下寻找,名字默认为:<servlet-name>元素文本内容-servlet.xml文件

 

posted on 2019-08-12 16:21  潘氏番茄酱  阅读(442)  评论(0编辑  收藏  举报