文章目录

  • SpringMVC介绍
    • SPringMVC的运行原理
    • 各组件介绍
      • 前端控制器
      • 处理器映射器
      • 处理器适配器
      • 处理器
      • 视图解析器
      • 视图
  • SpringMVC的使用
    • 目录结构:
    • 1.引入jar依赖
    • 2.在web.xml中配置前端控制器
    • 3、创建SpringMVC的配置文件
    • 4.将spring-mvc.xml配置文件加载到web.xml配置文件中
    • 5.编写controller层
    • 6.编写jsp页面
    • 7.部署服务
    • 8.Tomcat启动服务
  • 遇到的问题及解决方法
    • Error running 'Tomcat 9.0.50': Address localhost:8080 is already in use
    • 访问页面报错404源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示

SpringMVC介绍

SpringMVC是属于SPring中web模块的支持一部分
实现了web mvc的设计模式 进行web层的解耦
请求驱动类型的web框架:请求-响应的模型

SPringMVC的运行原理

运行步骤:
1、用户发起请求URL到达前端控制器
2、前端控制器请求处理器映射器查询Handler
3、处理器映射器返回给前端控制器,返回处理器执行链(HanderExecutionChain)(包含多个处理拦截器和一个Handler实例)
4、前端控制器请求处理器适配器执行Handler。
5、处理器适配器根据适配规则找到特定的处理器(后端controller层URL所绑定的方法),由处理器来执行Handler
6、处理器执行结束后返回给处理器适配器一个ModelAndView对象,该对象包含数据(Model)和逻辑视图名
7、处理器适配器将ModelAndView对象返回给前端控制器
8、前端控制器请求视图解析器解析视图地址,找到真正的视图
9、视图解析器将真正视图对象返回到前端控制器
10、将数据渲染到视图上
11、将渲染的页面响应给请求用户

各组件介绍

前端控制器

前端控制器为DispatcherServlet
不需要进行开发
前端控制器是整个用户请求的入口和完成各组件业务转发
所有组件都是直接和前端控制器交互,减少组件间的耦合性

处理器映射器

处理器映射为HandlerMapping
不需要进行开发
来存储URL和Handler之间的映射关系,
由前端控制器来判断请求URL是否存在,并返回包含Handler的处理器执行链

处理器适配器

处理器适配器为HadlerAdapter
不需要进行开发
按照特定的规则(HandlerAdapter要求的规则)去执行,Handler通过适配器找到真正的执行器,是适配器模式的使用

处理器

按照HandlerAdapter的要求开发,Handler是针对用户具体的业务逻辑做响应的处理,Handler涉及到就用户的具体的业务逻辑需要自行开发Handler

视图解析器

视图解析器为ViewResolver
不需要进行开发
解析视图,根据逻辑视图名找到真正的视图,视图解析器负责解析View视图即页面的具体的地址位置,jsp、pdf、freeMark等都能完成解析

视图

视图为View
需要进行开发
View是一个接口,支持不同的View类型(jsp、pdf、freeMark…),例如jsp是提供了一个jstl
视图是展示给用户的页面,不同的业务展示不同的页面

SpringMVC的使用

web项目需要放在容器里执行(Tomcat/jetty)

目录结构:

1.引入jar依赖

springMVC中web依赖:

        <!--web依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><!--Spring 基本核心jar包--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.1.7.RELEASE</version></dependency><!--log4j日志--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!--注解相关jar包--><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency>

2.在web.xml中配置前端控制器

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!--配置前端控制器--><servlet><servlet-name>springmvc-liangcheng</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>springmvc-liangcheng</servlet-name><url-pattern>/</url-pattern><!--http://www.baidu.com/index--></servlet-mapping>
</web-app>

需要在web.xml配置文件中引入前端控制器的实现类:org.springframework.web.servlet.DispatcherServlet
将SPringMVC的配置添加在web.xml文件中

3、创建SpringMVC的配置文件

创建一个spring-mvc.xml文件,放在资源文件路径下resource下,配置映射器,适配器和解析器

<?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.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"><!--配置SpringMVC的需要扫描的包路径--><context:component-scan base-package="com.liangcheng.controller"/><!--配置映射器、适配器:使用默认的处理器处理,不用显性配置映射器、适配器--><mvc:annotation-driven/><!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
</beans>

4.将spring-mvc.xml配置文件加载到web.xml配置文件中

<init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param>

5.编写controller层

public class TestController {@RequestMapping("/liangcheng")public String liangcheng(){//返回的页面return "index.jsp";}
}

6.编写jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>success</title></head><body><h1>你好呀!</h1></body></html>

7.部署服务

<plugin><groupId>org.mortbay.jetty</groupId><artifactId>maven-jetty-plugin</artifactId><version>6.1.24</version><configuration><connectors><connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"><port>8080</port><maxIdleTime>30000</maxIdleTime></connector></connectors><contextPath>/</contextPath></configuration></plugin>

8.Tomcat启动服务



运行结果:

遇到的问题及解决方法

Error running ‘Tomcat 9.0.50’: Address localhost:8080 is already in use

运行Tomcat 9.0.50错误:地址localhost:8080已经被使用
解决方法 :
换一个端口就可以了

访问页面报错404源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示

解决方法:
1.找到你自己所要运行的项目,看WEB-INF下面是否有lib目录,如果没有的话,新建一个lib目录,然后选择lib目录,点击那个加号,选择第一个就会把里面的包全部导进lib目录了


2.在部署的Tomcat的Deployment中添加上面运行项目


其他可能存在的问题解决方法请参考如下文章:
http://www.10qianwan.com/articledetail/754772.html

SPringMVC使用总结相关推荐

  1. 【SpringMVC】概述

    概述: SpringMVC:是基于spring的一个框架, 实际上就是spring的一个模块, 专门是做web开发的.                       理解是servlet的一个升级 Sp ...

  2. 【SpringMVC】基本概念

    SpringMVC的基本概念 三层架构 我们的开发一般都是基于c/s或者b/s架构.在JavaEE开发中,几乎全都是基于B/S架构开发.在B/S架构中,系统标准的三层架构包括:表现层,业务层,持久层. ...

  3. SSM框架整合(Spring+SpringMVC+MyBatis)

    输出结果 1.Maven Web项目创建 之前有写过Eclipse+Maven创建web项目的帖子,如果需要,请参考这里写链接内容 创建好项目之后因为入下图: 2.SSM整合 2.1 引入需要的JAR ...

  4. SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) SpringBoot-web开发(二): 页面和图标定制(源码分析) SpringBo ...

  5. SpringMVC——通俗易懂讲讲Ajax~

    聊聊Ajax 一.什么是Ajax 二.iframe标签简单伪造Ajax 三.Ajax的实现 1. 基本概念的了解 Ajax的核心是什么? XMLHttpRequest是什么? Ajax数据传输的数据格 ...

  6. Jackson、FastJson快速入门(整合SpringMVC)

    目录 1. 什么是 JSON 2. JSON 语法规则 3. JSON 与 JS 对象的关系 4. JSON 和 JS 对象互转 5. Jackson-数据格式转换 1. 环境搭建 2. 对象转jso ...

  7. RESTful风格及其SpringMVC实现

    目录 1.RESTful概念 2.RESTful功能 3.对比:传统方式操作资源 4.SpringMVC实现传统方式操作资源 5.使用RestFul操作资源 6.SpringMVC实现RESTful操 ...

  8. 使用注解开发SpringMVC详细配置教程

    目录 1.使用注解开发SpringMVC 1.新建一个普通的maven项目,添加web支持 2.在pom.xml中导入相关依赖 3.配置web.xml 4.编写SpringMVC配置文件 1. 自动扫 ...

  9. SpringMVC的form:form表单的使用

    为什么要使用SpringMVC的form:form表单,有两个原因:一是可以更加快捷的完成表单的开发,比如会替你做好数据类型装换等本来需要你自己动手的工作.其次就是能够更加方便的实现表单回显. 首先要 ...

  10. SpringMVC工作环境搭建 配置文件

    web.xml配置 在服务器端容器启动之前加载配置文件的顺序:context-param>listener>filter>servlet //容器配置application上下文的时 ...

最新文章

  1. mysql count 返回0_如何在MySQL中使用COUNT時返回0而不是null
  2. Photoshop CS5
  3. 今天做内存操作系统(xp装在内存中)
  4. 浅读:ITSM信息技术服务管理
  5. Linux部署Node.js应用
  6. LSMW批处理使用方法(12)_步骤16、17
  7. SAP OData错误消息:Invalid format (return structure): Property Name ‘Guid‘, Property Value ‘000000
  8. TensorFlow 实例一:线性回归模型
  9. C# 托管资源与非托管资源
  10. win7查看隐藏文件_Win8系统查看隐藏文件的操作方法是什么?
  11. 宝塔面板FTP连接方法
  12. 使用 Travis 自动部署 Hexo 到 Github 与 自己的服务器
  13. CSS权威指南(第三版)笔记
  14. python如何退出虚拟环境_python 虚拟环境
  15. 认识UDS诊断29认证服务-Authentication Service
  16. 史玉柱自述创业历程,我思故我在
  17. 数据库MySQL创库、创表基本命令
  18. bwt比对算法 C语言,BWT比对算法
  19. 中美自动驾驶最新融资情况:千万级与十亿级美元的距离
  20. JavaScript百炼成仙 1.18 函数七重关之一 (函数定义)

热门文章

  1. *用C#创建Windows服务(Windows Services)
  2. 数据结构第二章学习总结
  3. java操作大文件复制
  4. 用Spark和DBSCAN对地理定位数据进行聚类
  5. 免安装版Tomcat6.0启动方法
  6. java设计模——反射的应用 (利用反射来去除if判断语句)
  7. CentOS创建快捷按钮并设置文件图标
  8. python xml模块
  9. Ajax的beforeSend 和 complete
  10. 程序员的高速学习法——以JS学习为例,进行图解