XML配置方式使用Spring MVC


一,创建Maven项目

Maven项目 - SpringMvcDemo

单击 【new project】
在这里插入图片描述设置为下图所示后,单击【create】按钮
在这里插入图片描述

项目创建成功
在这里插入图片描述

二,添加相关依赖

在pom.xml文件里添加支持Spring MVC的相关依赖,添加内容如下:

<?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>net.army.spring</groupId>
    <artifactId>SpringMvcDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <!-- spring.version -->
        <spring.version>5.3.25</spring.version>
    </properties>

    <dependencies>
        <!--Spring核心-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring Bean实体-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring容器-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring测试-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring Web功能-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring MVC框架-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--JSP标准标签库-->
        <dependency>
            <groupId>javax.servlet</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>
        <!--日志框架-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

在这里插入图片描述

三,给项目添加Web功能

选择【file】-【project structure…】
在这里插入图片描述

选择【modules】-【+】-【web】
在这里插入图片描述
单击【Create Artifact】按钮
在这里插入图片描述将名称改为 SpringMvcDemo,单击【OK】按钮

在这里插入图片描述

此时看到项目多了一个web目录
在这里插入图片描述

四)创建三个页面

在WEB-INF里创建views子目录(用于存放JSP页面)

右击【WEB-INF】,选择【new】,单击【Directory】
在这里插入图片描述此时输入views,按回车键
在这里插入图片描述
创建成功
在这里插入图片描述

1,创建登录页面

在views目录里创建登录页面 - login.jsp

右击【views】,选择【new】,单击【JSP/JSPX】,在输入login,按下回车即可创建成功
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

添加如下代码:

<%--
  Created by IntelliJ IDEA.
  User: 梁辰兴
  Date: 2023/3/21
  Time: 11:11
  To change this template use File | Settings | File Templates.
--%>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户登录</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
</head>
<body>
<h3 style="text-align: center">用户登录</h3>
<form id="frmLogin" action="login" method="post">
    <table class="tb" border="1" cellpadding="10" style="margin: 0px auto">
        <tr>
            <td align="center">账号</td>
            <td><input id="username" type="text" name="username"/></td>
        </tr>
        <tr>
            <td align="center">密码</td>
            <td><input id="password" type="password" name="password"/></td>
        </tr>
        <tr align="center">
            <td colspan="2">
                <input type="submit" value="登录"/>
                <input type="reset" value="重置"/>
            </td>
        </tr>
    </table>
</form>
</body>
</html>

2,创建登录成功页面

在views目录里创建登录成功页面 - success.jsp
在这里插入图片描述
添加如下代码:

<%--
  Created by IntelliJ IDEA.
  User: 梁辰兴
  Date: 2023/3/21
  Time: 11:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
  <title>登录成功</title>
</head>
<body>
<h1 style="text-align: center">${username},登录成功!</h1>
</body>
</html>

3,创建登录失败页面

在views目录里创建登录失败页面 - failure.jsp
在这里插入图片描述
添加如下代码:

<%--
  Created by IntelliJ IDEA.
  User: 梁辰兴
  Date: 2023/3/21
  Time: 11:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>登录失败</title>
</head>
<body>
<h1 style="text-align: center">${username},登录失败!</h1>
</body>
</html>

五,创建登录控制器

创建net.army.spring.controller包,然后在包里创建LoginController类
右击【net.army.spring】包,选择【new】,单击【package】
在这里插入图片描述输入controller,按下回车键
在这里插入图片描述

右击【net.army.spring.controller】包,选择【new】,单击【java class】
在这里插入图片描述
输入LoginController,按下回车键
在这里插入图片描述
创建成功
在这里插入图片描述添加如下代码:

package net.army.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpSession;

/**
 * 作者:梁辰兴
 * 日期:2023/3/21
 * 功能:登录控制器
 */
@Controller // 交给Spring容器来管理
public class LoginController {
    
    
    @PostMapping("/login")  // 可用@RequestMapping("/login")
    public String login(@RequestParam("username") String username,
                        @RequestParam("password") String password,
                        HttpSession session) {
    
    
        // 将登录表单提交的用户名写入会话
        session.setAttribute("username", username);
        // 判断用户是否登录成功
        if (username.equals("army") && password.equals("1234567")) {
    
    
            // 返回逻辑视图名success,表明跳转到登录成功页面
            return "success";
        }

        // 返回逻辑视图名failure,表明跳转到登录失败页面
        return "failure";
    }
}

六,创建Spring配置文件

在resources里创建mvc子目录,然后在子目录里创建spring-config.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 
       https://www.springframework.org/schema/context/spring-context.xsd">

    <!--组件扫描-->
    <context:component-scan base-package="net.huawei.spring" />
</beans>

七,创建Spring MVC配置文件

在resources/mvc目录里创建spring-mvc-config.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
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--采用注解驱动-->
    <mvc:annotation-driven/>

    <!--扫描控制器-->
    <context:component-scan base-package="net.army.spring.controller"/>

    <!--定义内部资源视图解析器:负责解析控制器里从逻辑视图到物理页面的映射-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/> <!--路径-->
        <property name="suffix" value=".jsp"/> <!--扩展名-->
    </bean>
</beans>

八,修改Web部署描述文件

一个Web项目启动时最先要读取web.xml文件

在web/WEB-INF目录里打开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">
    <!--设置启动首页-->
    <welcome-file-list>
        <welcome-file>/WEB-INF/views/login.jsp</welcome-file>
    </welcome-file-list>

    <!--Spring容器加载监听器,让Spring随着Web项目启动而初始化-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--指定Spring配置文件位置-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:mvc/spring-config.xml</param-value>
    </context-param>

    <!--注册Spring前端控制器,加载Spring MVC配置文件-->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:mvc/spring-mvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup> <!--数字越小,启动级别越高-->
    </servlet>

    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>  <!--“/”表明拦截一切请求-->
    </servlet-mapping>

    <!--设置字符编码过滤器-->
    <filter>
        <filter-name>Character 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>Character Encoding</filter-name>
        <url-pattern>/*</url-pattern> <!--/*表明过滤一切请求-->
    </filter-mapping>
</web-app>

九,配置Tomcat服务器

单击工具栏上的【current file】-【edit configurations…】
在这里插入图片描述单击【+】-【Tomcat server】-【local】
在这里插入图片描述单击【configure…】
在这里插入图片描述
配置如下图,单击【ok】按钮
在这里插入图片描述
选择【deployment】,单击【+】
在这里插入图片描述
单击【artifact…】
在这里插入图片描述在这里插入图片描述

注意一下URL,然后单击【ok】按钮
在这里插入图片描述

十,添加项目对Tomcat的依赖

打开【Project Structure】窗口,选择Modules对应的Dependencies
在这里插入图片描述
单击【library…】
在这里插入图片描述
选择【Tomcat 8.5.86】,单击【add selected】按钮
在这里插入图片描述
单击【ok】按钮
在这里插入图片描述

十一,启动Tomcat服务器

单击运行按钮,出现下图错误,可参考《Error:java: 不再支持源选项 5》
在这里插入图片描述
启动失败,因为输出目录没有项目运行所需的jar包
在这里插入图片描述
配置Artifacts,添加项目正常运行所需的jar包

选择所有的文件,然后右击,单击【Put into / WEB-INF/lib】
在这里插入图片描述
目录添加成功,单击【ok】按钮
在这里插入图片描述再次启动服务,查看结果
在这里插入图片描述

十二,测试登录功能

下面进行录屏展示登录成功与失败的情况

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_62617719/article/details/129683850