SpringMVC项目搭建-Maven+Web,超详细搭建过程!

本文介绍了在Idea中搭建SpringMVC项目的详细步骤。先创建Maven项目,导入springmvc依赖,处理module创建及包颜色问题,配置web.xml和springmvc-servlet.xml文件,创建controller类和jsp文件,最后配置tomcat并运行,成功则表示项目搭建完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目搭建:
在idea中先创建一个Maven项目
创建Maven项目
在这里插入图片描述
然后在pom.xml文件中导包,导入springmvc所需依赖如下:

<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>

如果工程中要建立多个module,可以删除project中的src包,因为代码不用写在这个里面,所以直接删掉工程中的src包就行。
接下来在已创建好的project中新建一个module:
新建module
同样是使用Maven创建,注意parent选择原project名:
在这里插入图片描述
创建好module后,首先添加web项目,用鼠标右键点击module名,点击Add Framework Supprt:
在这里插入图片描述
随后勾选Web Application,点击OK:
在这里插入图片描述
此时web项目成功加入module中:
在这里插入图片描述
有些人的idea在工程中添加module时可能会出现module中main包下的java和resources以及test包下的java包是黑色的问题,此时是无法创建.class文件的,我们要鼠标右键点击这些包,选择Mark Directory as,选择它们对应的root,设置成功后就可以正常使用了。
在这里插入图片描述
随后点击File,选择Project Structure
在这里插入图片描述
点击Artifacts,在中间选择创建好的module,再在点开右边的WEB-INF文件,如果该文件下没有lib文件,可能tomcat运行时就无法将maven项目中的包成功导出,我们需要在WEB-INF下创建一个lib文件夹,添加项目中所有的library资源至这个文件夹中。
在这里插入图片描述
在这里插入图片描述
执行完上述操作后,就可以先配置web.xml文件了,简单的SpringMVC项目的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!--    配置DispatcherServlet:这个是SpringMVC的核心:请求分发器,前端控制器-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--        DispatcherServlet要绑定Spring的配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!--        启动级别:1-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--    SpringMVC中  /  /*
            /:只匹配所有的请求,不会去匹配jsp页面
            /*:匹配所有的请求,包括jsp页面-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

如果出现输出乱码的情况,可以将Spring自带的过滤器配置加到web.xml文件中,设置如下:

<!--    配置SpringMVC的乱码过滤-->
    <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

随后设置springmvc的配置文件,在main包的resources包中新建一个springmvc-servlet.xml的spring.xml文件,创建后如果使用的是idea,应该此时在web.xml文件中ctrl+鼠标左键点击springmvc-servlet.xml是能自动转到的,否则就是路径不对或者产生了其他问题。
springmvc的注解模式的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
    <context:component-scan base-package="controller"/>

    <!-- 让Spring MVC不处理静态资源 .css .js .html .mp3 .mp4-->
    <mvc:default-servlet-handler />

    <!--
  支持mvc注解驱动
      在spring中一般采用@RequestMapping注解来完成映射关系
      要想使@RequestMapping注解生效
      必须向上下文中注册DefaultAnnotationHandlerMapping
      和一个AnnotationMethodHandlerAdapter实例
      这两个实例分别在类级别和方法级别处理。
      而annotation-driven配置帮助我们自动完成上述两个实例的注入。
   -->
    <mvc:annotation-driven/>

    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

配置文件配置好之后,可以看出此时springmvc已经可以自动扫描controller包中文件的注解了,我们这时在main包下创建controller类,在类中创建一个HelloController.class文件:
在这里插入图片描述
注解开发模式下,HelloControl类中的代码如下:

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/hello")
public class HelloController {

    //localhost:8080/web路径/hello/h1
    @RequestMapping("/h1")
    public String hello(Model model){
        //封装数据
        model.addAttribute("msg", "HelloSpringMVC");
        return "hello";//会被视图解析器处理
    }
}

以上类中方法将HelloSpringMVC通过请求转发传入到了hello.jsp中,这时我们需要在WEB-INF文件夹下创建一个jsp文件夹,再在jsp文件夹中创建名为hello.jsp的文件,在body中写一个el表达式:${msg}。
在这里插入图片描述
最后配置tomcat就行了,点击编译的那个锤子右边的选项框,选择Edit Configurations,如下图所示:
在这里插入图片描述
随后点击弹出界面中的加号,添加本地的tomcat:
在这里插入图片描述
点击OK后,右下角一般会出现一个爆红的Fix,点击这个Fix选择自己想要部署的web项目就可以了,注意这时URL中的路径就是你项目的初始路径,最后点击apply,配置成功。
在这里插入图片描述
按以上操作执行完后,就可以运行tomcat了,成功运行后会弹出网页,我们在原URL中加上hello/h1,即可实现页面请求转发,网页中出现HelloSpringMVC:
在这里插入图片描述
成功运行则表示SpringMVC项目搭建成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值