SpringMVC框架一
一、简述
1、简介
Spring MVC是一种基于java实现了Web MVC 设计模式的请求驱动类
型的轻量级的Web框架。即使用了MVC架构模式的思想,将Web层进
行解耦。基于请求驱动指的就是请求-响应模式。框架的目的就是帮助
我们简化开发,Spring MVC框架也是要简化我们的日常开发的。
基于java实现,也是spring框架的一个组件
它是基于 MVC设计模式 设计
请求驱动类型
请求-----响应的模块
轻量级的Web框架
它主要就是解决WEB应用问题
2、作用
简化WEB开发
主要解决WEB问题
主要解决java经典三层架构的Web层的控制器

二、SpringMVC框架模型
1、框架图

2、SpringMVC的核心组DispatcherServlet组件
前端控制器
此组件是整个SpringMVC最核心的组件
作用
接受客户端请求,委派HandlerMapping、
HandlerAdpater处理,将数据模型(Model)转发到View组件
HandlerMapping组件
处理器映射器
作用
寻找客户端获取的目标Handler
举例
客户端输入:http://xxxxx/shoplist
HandlerMapping根据“/shoplist”去找目标的组件
(handler)
HandlerAdapater组件
处理器适配器
作用
是否适合运行目标Handler
举例
看一部3D电影
Handler
目标handler
作用:后端目标组件(客户端最终访问的目标组件)
ModelAndView
简介
ModelAndView:描述模型与视图组件
ViewResolver
视图解释器
将视图的逻辑地址解释成视图的物理地址
三、开发第一个springmvc程序
1、新建一个Web module
略
2、导入库


3、配置DispatchServlet
在web.xml文件,配置DispatchServlet组件
<?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 MVC的前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- 让Spring MVC的前端控制器拦截所有请求 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
4、编辑配置文件
配置/WEB-INF/springmvc-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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--配置handler对应的uri--> <bean name="/hello" class="com.gec.controller.HelloController"/> <!-- 配置处理器映射器 :找目标handler BeanNameUrlHandlerMapping:找目标handler的规则:根据 beanName作为url地址来找 --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- 配置处理器适配器:handler是否适配适合运行 SimpleControllerHandlerAdapter:判断是否适合运行此 handler的条件:此目标handler必须实现Controller接口 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> <!--视图解释器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> </beans>
5、编写handler
编写目标控制器组件
package com.gec.controller; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView modelAndView=new ModelAndView(); modelAndView.addObject("username","root"); modelAndView.setViewName("/WEB-INF/jsp/hello.jsp"); return modelAndView; } }
六、编写jsp
新建目录
/WEB-INF/jsp/
编写 hello.jsp组件
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020-10-19 Time: 11:02 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1> 用户:${username} </h1> </body> </html>
结果图


浙公网安备 33010602011771号