SpringMVC-环境搭建(IDEA)

SpringMVC-环境搭建(IDEA)

一、项目创建

1、不使用骨架创建

在这里插入图片描述
在这里插入图片描述

可以看见,不使用骨架创建的项目maven项目很干净,但是main文件夹下没有webapp文件夹,需要手动添加

在这里插入图片描述

  • 添加webapp文件夹

  • 点击File—>Project Structure

在这里插入图片描述

  • Modules—>±–>web

在这里插入图片描述

在这里插入图片描述

  • 需要修改Web Resource Directories 和Deployment Descriptors

在这里插入图片描述

  • 修改Web Resource Directories,默认是直接在项目下创建web文件夹,这个文件夹在项目运行时会找不到,所以需要修改路径

在这里插入图片描述

在这里插入图片描述

  • 修改Deployment Descriptors,这个原来是在web文件夹下创建WEB-INF目录和web.xml文件,现在需要将路径修改为webapp的路径

在这里插入图片描述

在这里插入图片描述

  • 如果有黄色警告,点击Create Artifact进行创建就可以了

在这里插入图片描述

  • 如果没有黄色警告按照如下的操作也是一样的

在这里插入图片描述

  • 最终有一个就可以了

在这里插入图片描述

  • 不使用骨架创建的目录结构和pom.xml如图所示

在这里插入图片描述

2、使用骨架创建

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 完成之后看到的项目目录结构是这样的,main下没有java 和resources目录 pom.xml文件也多了很多内容

在这里插入图片描述

  • 在main文件夹上右键—>new—>Directory

在这里插入图片描述

  • 将这两个文件分别添加上就可以了,双击它们会自动创建

在这里插入图片描述

  • 可以看见基本和不使用骨架创建是一样的了,只是少了测试文件夹,如果需要,则在src上右键—>new—>Directory,将test文件夹补齐就可以了

在这里插入图片描述

二、配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>com.dapan</groupId>
    <artifactId>SpringMVC01</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--web项目打成war包,java项目打成jar包-->
    <packaging>war</packaging>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <dependencies>
        <!--spring-webmvc依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        <!--springmvc底层还是servlet,所以必须添加servlet依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope><!--插件运行的时候没有范围插件启动会失败-->
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 编码和编译和JDK版本 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>

            <!--tomcat插件-->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <path>/</path>  <!--项目访问路径-->
                    <port>8080</port><!--项目访问端口,不写默认也是8080-->
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
  • 添加完依赖后记得要刷新一下,导入jar包

在这里插入图片描述

三、编写Spring配置文件

我们一般将除了 Controller 之外的所有 Bean 注册到 Spring 容器中,而将 Controller 注册到 SpringMVC 容器中。所以我们在 resources 目录下添加 applicationContext.xml 作为 spring 的配置, 添加springmvc.xml作为springmvc的配置文件。

1、在resources目录下新建applicationContext.xml和springmvc.xml

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、新建包

在这里插入图片描述

3、配置applicationContext.xml

<?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"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
">
    <!--spring的配置文件:除了控制器之外的bean对象都在这里扫描-->
    <context:component-scan base-package="com.dapan.service,com.dapan.dao,com.dapan.entity"/>
</beans>

4、配置springmvc.xml

<?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 http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
    <!--springmvc的配置文件:控制器的bean对象都在这里扫描-->
    <context:component-scan base-package="com.dapan.controller"/>

    <!--    告知处理请求注解-->
    <mvc:annotation-driven/>
    <!--    配置视图解析器-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

</beans>

四、配置web.xml

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

    <!-- spring配置-->
    <context-param>
        <!--contextConfigLocation:表示用于加载 Bean的配置文件-->
        <param-name>contextConfigLocation</param-name>
        <!--
            指定spring配置文件的位置
            这个配置文件也有一些默认规则,它的配置文件名默认就叫 applicationContext.xml ,
            如果将这个配置文件放在 WEB-INF 目录下,那么这里就可以不用指定配置文件位置,只需要指定监听器就可以。
            这段配置是 Spring 集成 Web 环境的通用配置;一般用于加载除控制器层的 Bean(如dao、service 等),以便于与其他任何Web框架集成。
        -->
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- springmvc的控制器-->
    <servlet>
        <!--
             前端控制器:所有的请求都会经过此控制器,然后通过此控制器分发到各个分控制器.
             前端控制器本质上还是一个Servlet,因为SpringMVC底层就是使用Servlet编写的
       -->
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 创建前端控制器的时候读取springmvc配置文件启动ioc容器 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!-- Tomcat启动就创建此对象 -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- 配置拦截路径url,所有以.do结尾的请求都会被前端控制器拦截处理 -->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

<!--
SpringMVC的配置解析:
1、servlet-class:前端控制器的完全限定名,在spring-webmvc-5.2.10.RELEASE.jar包中的org.springframework.web.servlet下
2、load-on-startup:标记是否在Web服务器(这里是Tomcat)启动时会创建这个 Servlet 实例,即,是否在 Web 服务器启动时调用执行该 Servlet 的 init()方法,
而不是在真正访问时才创建。 要求取值是整数。
值大于0:表示容器在启动时就加载并初始化这个 servlet,数值越小,该 Servlet的优先级就越高,其被创建的也就越早
值小于0或者省略:表示该 Servlet 在真正被使用时才会去创建。
值相同:容器会自己选择创建顺序
3、url-pattern:可以写为 / ,可以写为*.do 、*.action、*.mvc等形式,此处写*.do
4、init-param:表示了springmvc配置文件的名称和位置。如果没有配置,默认在项目的WEB-INF目录下找名称为 Servlet 名称-servlet.xml 的配置文件。
如果没有配置,启用默认的规则:即如果配置文件放在 webapp/WEB-INF/ 目录下,并且配置文件的名字等于 DispatcherServlet 的名字+ -servlet
(即这里的配置文件路径是 webapp/WEB-INF/dispatcherServlet-servlet.xml),如果是这样的话,可以不用添加 init-param 参数,
即不用手动配置 springmvc 的配置文件,框架会自动加载。
而一般情况下,配置文件是放在类路径下,即 resources 目录下。所以,在注册前端控制器时,
还需要设置查找 SpringMVC 配置文件路径。
其中contextConfigLocation属性:来自DispatcherServlet的父类FrameworkServlet,
该类中的contextConfigLocation属性用来配置springmvc的路径和名称。
-->
</web-app>

五、编写页面

在webapp目录下创建jsp/html页面

index.jsp 项目启动时会默认访问index页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>index</title>
</head>
<body>
<a href="hello.do">点击登录</a>
</body>
</html>

welcome.jsp 跳转的页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>welcome</title>
</head>
<body>
<h1>welcome------------欢迎${name}</h1>
</body>
</html>

六、编写后端代码

StudentController.java

package com.dapan.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class StudentController {

        @RequestMapping( "hello.do")
        public ModelAndView add() {
            System.out.println("StudentController---add-----");
            studentService.add();
            ModelAndView mv = new ModelAndView();
            //经过internalResourceViewResolver对象处理之后就变成了  /welcome.jsp
            mv.setViewName("welcome");    //相当于request.getRequestDispatcher("welcome.jsp").forward(request,response);
            mv.addObject("name", "张三");//相当于request.setAttribute("name", "张三");
            return mv;
        }
}

七、测试

通过插件运行tomcat

在这里插入图片描述

在浏览器中访问地址

在这里插入图片描述

点击超链接后跳转到相应页面

在这里插入图片描述

至此,SpringMVC环境搭建完成!!!

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

What大潘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值