> 文章列表 > java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

文章目录

  • 一、学习目标
  • 二、Spring MVC概述
      • 1、MVC架构
      • 2、Spirng MVC
      • 3、使用Spring MVC的两种方式
  • 三、基于xml配置与注解的方式使用Spring MVC
    • (一)创建Maven项目
    • (二)添加相关依赖
    • (三)给项目添加Web功能
    • (四)创建三个页面
      • 1、创建登录页面
      • 2、创建登录成功页面
      • 3、创建登录失败页面
    • (五)创建登录控制器
    • (六)创建Spring配置文件
    • (七)创建Spring MVC配置文件
    • (八)修改Web部署描述文件
    • (九)配置Tomcat服务器
    • (十)添加项目对Tomcat的依赖
    • (十一)启动Tomcat服务器

一、学习目标

  • 了解Spring MVC的基本原理
  • 会基于XML配置方式使用Spring MVC

二、Spring MVC概述

1、MVC架构

MVC 是 Model、View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责。

  • 模型:用于存储数据以及处理用户请求的业务逻辑。
  • 视图:向控制器提交数据,在移动端或Web端显示模型中的数据。
  • 控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给哪个视图更新显示。

2、Spirng MVC

  • Spring MVC 是 Spring 提供给 Web 应用的框架设计。Spring MVC 是一个典型的教科书式的 MVC 构架,不像 Struts 等都是变种或者不是完全基于 MVC 系统的框架。Spring MVC 角色划分清晰,分工明细,并且和 Spring 框架无缝结合。作为当今业界最主流的 Web 开发框架,Spring MVC 已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。
  • 实际上MVC只存在于三层架构的展现层,M实际上是数据模型,是包含数据的对象,在Spring MVC里有一个专门的类交Model,用于和V之间的数据交互和传值;V指的是视图页面,包含JSP、FreeMarker、Velocity、Thymeleaf、Tile等;C当然就是控制器(Spring MVC的注解@Controller的类)。
  • Spring MVC工作流程
    1.客户端请求提交到 DispatcherServlet。
    2.由 DispatcherServlet 控制器寻找一个或多个 HandlerMapping,找到处理请求的 Controller。
    3.DispatcherServlet 将请求提交到 Controller。
    4.Controller 调用业务逻辑处理后返回 ModelAndView。
    5.DispatcherServlet 寻找一个或多个 ViewResolver 视图解析器,找到 ModelAndView 指定的视图。
    6.视图负责将结果显示到客户端。
    java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

3、使用Spring MVC的两种方式

  • 基于XML配置与注解的方式使用Spring MVC
  • 基于Java配置与注解的方式使用Spring MVC

三、基于xml配置与注解的方式使用Spring MVC

(一)创建Maven项目

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

(二)添加相关依赖

java企业级信息系统开发学习笔记06基于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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>net.huawei.spring</groupId><artifactId>SpringMvcDemo01</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功能

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

(四)创建三个页面

1、创建登录页面

<%--Created by IntelliJ IDEA.User: huaweiDate: 2023-03-08Time: 15:37To 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、创建登录成功页面

<%@ 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、创建登录失败页面

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

(五)创建登录控制器

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

package net.huawei.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年03月08日*/
@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("howard") && password.equals("903213")) {// 返回逻辑视图名success,表明跳转到登录成功页面return "success";} // 返回逻辑视图名failure,表明跳转到登录失败页面return "failure"; }
}

(六)创建Spring配置文件

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

<?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/beanshttp://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配置文件

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--采用注解驱动--><mvc:annotation-driven/><!--扫描控制器--><context:component-scan base-package="net.huawei.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部署描述文件

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

<?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/javaeehttp://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服务器

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

(十)添加项目对Tomcat的依赖

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

(十一)启动Tomcat服务器

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC
java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC