【Spring篇】初始Spring MVC框架之Spring MVC入门程序编写
🧸安清h:个人主页
🎥个人专栏:【计算机网络】【Mybatis篇】【Spring篇】
🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。
目录
🎯Spring MVC概述
Spring MVC是一个基于Java的实现了MVC(Model-View-Controller)设计模式的Web框架。它是Spring框架的一部分,专门用于构建Web应用程序。Spring MVC通过将应用程序分离成模型(Model)、视图(View)和控制器(Controller)三个核心组件,来帮助开发者构建可维护、可测试的Web应用程序。
🚦Spring MVC的核心特点
自动配置:在Spring Boot中,Spring MVC可以自动配置,大大简化了配置工作。
内容协商:Spring MVC支持内容协商,可以根据客户端的请求头来决定返回的数据格式,如JSON或XML。
模板引擎支持:Spring MVC支持多种模板引擎,如Thymeleaf、FreeMarker等,可以方便地生成动态内容。
过滤器支持:Spring MVC可以与Servlet过滤器(Filter)集成,提供额外的请求处理能力。
响应体和请求体处理:Spring MVC提供了
@ResponseBody
和@RequestBody
注解,可以轻松处理HTTP请求和响应的正文。依赖注入:Spring MVC支持依赖注入(DI),可以轻松地将Spring管理的bean注入到控制器中。
轻量级:Spring MVC是一个轻量级的Web框架,它的核心库只包含实现MVC模式所需的最小集合。
强大的数据绑定:Spring MVC提供了强大的数据绑定机制,可以自动将请求参数绑定到控制器方法的参数上。
🎯Spring MVC入门程序
🚦创建项目
新建一个项目:
点击左上角File->Project Structure->Modules,点左上角‘+’,出现以下界面:
点击图中标红框的Web标签,点击铅笔后出现以下界面:
将路径修改为src\main\webapp\WEB-INF\web.xml,修改后点击OK:
然后在该界面的下方找到Web Resource Directory,同样点击小铅笔,将路径改为src\main\webapp:
点击OK后,创建项目成功,项目的目录结构如下图:
🚦引入Maven依赖
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.5.6</version>
<scope>test</scope>
</dependency>
<!-- servlet依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- JSP-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- SPring5和Thymeleaf整合包-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
</dependencies>
<!-- 以插件的形式配置tomcat服务器-->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port> <!-- 端口号-->
<path>/SpringMvcTest</path> <!-- 路径,以/开头-->
</configuration>
</plugin>
</plugins>
</build>
点击上方菜单栏的Run->Edit Configurations,出现以下界面,点击左上角的“+”,下拉选择Maven:
在Working directory输入项目在本地的路径,Command line中输入tomcat7:run,在此让项目在Tomcat中运行:
🚦配置前端服务器
Spring MVC通过前端控制器拦截客户端的请求并进行转发。
在以下代码中的<servlet-class>中的部分,可以通过项目目录打开External Libraries->找到webmvc->打开spring-webmvc->打开web.servlet->找到DispatcherServlet->右键Copy Reference
在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">
<!-- 配置SpringMVC前端控制器,对浏览器发送的请求进行统一处理-->
<servlet>
<servlet-name>SpringMVC_Test01</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置SpringMVC文件的位置和名称-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!-- 将前端控制器DispatcherServlet的初始化时间提前到服务器启动时-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC_Test01</servlet-name>
<!-- 如果是/*,服务器内部跳转jsp的过程会被DispatcherServlet解析,当作Controller处理,所以使用/-->
<!-- 设置springMVC的核心控制器所能处理的请求的请求路径,
/所匹配的请求可以是.html或.js或.css方式的请求路径,
匹配不了.jsp请求路径的请求。
/*代表的是所有请求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
🚦配置处理器映射信息和视图解析器
在resources文件夹下创建Spring MVC的配置文件spring-mvc.xml,具体代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
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/aop
http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--配置Spring MVC要扫描的包-->
<context:component-scan base-package="com.haust.controller"/>
<!-- 配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/config/"/>
<!-- 后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
🚦创建处理器
在com.haust.controller包中创建FirstController类,用于处理客户端的请求并指定响应时跳转的页面,具体代码如下:
@Controller
public class FirstController {
@RequestMapping("/")
public String sayHello(){
System.out.println("访问到FirstController");
return "welcome";
}
}
🚦创建视图页面
在webapp中的WEB-INF中新建包config,在包中新建文件welcome.jsp,具体代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>Welcome</h2>
</body>
</html>
以上操作完成后,运行后的浏览器的跳转页面为:
🎯SpringMVC的核心类
DispatcherServlet是SpringMVC的核心类,也称为SpringMVC的前端控制器,可以拦截客户端的请求,它的本质上是一个Servlet,可以在文件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">
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置SpringMVC配置文件的位置和名称-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!-- 将前端控制器DispatcherServlet的初始化时间提前到服务器启动时-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- 设置springMVC的核心控制器所能处理的请求的请求路径,
/所匹配的请求可以是.html或.js或.css方式的请求路径,
匹配不了.jsp请求路径的请求。
/*代表的是所有请求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
以上就是本期介绍的全部内容了,主要是关于初始SpringMVC。如果您感兴趣的话,可以订阅我的相关专栏。非常感谢您的阅读,如果这篇文章对您有帮助,那将是我的荣幸。我们下期再见啦🧸!
原文地址:https://blog.csdn.net/m0_74202856/article/details/143161453
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!