springMVC 学习笔记(一):spring 入门

springMVC 学习笔记(一):spring 入门 什么是 springMVC

springMVC 是 spring 框架的一个模块,springMVC 和 spring 无需通过中间整合层进行整合。springMVC 是一个基于 mvc 的 web 框架。

在 spring 中如下图所示:

springMVC 组件及工作流程 组件

springMVC 的主要组件大致有以下这些:

前端控制器 DispatcherServlet: 接收请求,响应结果,相当于转发器。该组件能减少其他组件之间的耦合度。

处理器映射器 HandlerMapping:根据请求的 url 查找 Handler。

处理器适配器 HandlerAdapter: 按照特定规则去执行 Handler。

处理器 Handler:指定要执行的程序。

视图解析器 View resolver:进行视图解析,根据视图名解析成真正的视图。

视图 View:View 是一个接口,实现类支持不同的 View 类型。

工作流程图

工作流程

1 发起请求到前端控制器 DispatcherServlet;

2 前端控制器请求 HandlerMapping 查找 Handler ,可以根据 xml 配置,注解进行查找;

3 处理器映射器 HandlerMapping 向前端控制器返回 Handler;

4 前端控制器调用处理器适配器去执行 Handler;

5 处理器适配器去执行 Handler;

6 Handler 执行完成给适配器返回 ModelAndView,其中 ModelAndView 是 springMVC 框架的一个底层对象,包括 Model 和 view;

7 处理器适配器向前端控制器返回 ModelAndView;

8 前端控制器去请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp);

9 视图解析器向前端控制器返回 View;

10 前端控制器进行视图渲染,视图渲染将模型数据(在 ModelAndView对象中)填充到 request 域;

11 前端控制器向用户响应结果。

简单来说,就是遵循 MVC软件架构模式。

入门程序

举个栗子,编写个程序来实现 springMVC 的功能。

在这里我们还是在 IntellJ IDEA 中使用 maven 来快速搭建开发环境。

打开 idea,创建新项目,选择 maven,勾选 create from archetype,选中 webapp选框。

一路选择后, maven便帮我们自动生成了一个简单的 web 文件夹,但这个并不是 maven 标准结构,我们选择 File -> Project Structure -> Modules,修改文件结构如下:

修改 pom.xml,添加 springMVC 及相关的依赖:

<dependencies> <!-- springmvc 框架 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework-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> <!-- standard包 --> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.5</version> </dependency> </dependencies>

配置前端控制器,修改 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 " version="3.1"> <!-- springmvc 前端控制器 --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- contextConfigLocation 配置 springMVC 加载的配置文件(配置处理器映射器,适配器等等) 若不配置,默认加载 WEB-INF/servlet 名称-servlet(springmvc-servlet.xml) --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/springmvc-servlet.xml</param-value> </init-param> </servlet> <!-- 拦截请求 --> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>

创建映射文件 springmvc-servlet.xml , 配置 Handler, 处理器映射器,处理器适配器,视图解析器等:

<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans "> <!-- 配置Handler --> <bean/> <!-- 处理器映射器 将 bean 的 name 作为 url 进行查找,需要在配置 Handler 时指定 beanname(就是 url) --> <bean/> <!-- 处理器适配器 所有处理器适配器都实现了HandlerAdapter 接口 --> <bean/> <!-- 视图解析器 解析 jsp 解析,默认使用 jstl 标签,classpath 下要有jstl 的包 --> <bean></bean> </beans>

然后创建 pojo 类 Items.java 和 controller 类 ItemsController.java,这里我们没有连接数据库,作为演示,直接在 pojo 类中填充静态数据即可:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpspjg.html