三层结构

使用java开发web项目常采用三层结构,即控制层(controller)、业务层(service)和数据访问层(dao)三层,spring框架对于这三层结构的每一层都有相应解决方案,即下图

相对应控制层的SpringMVC,个人理解:MVC即model、view和controller,model是指实体类,view指前端页面(常用jsp),controller便是处理前端请求并执行相应操作的类,而springMVC便是交由spring统一管理的MVC。
业务层用于整合具体实现功能的dao层方法及其他业务。
数据访问层的功能通过jdbcTemplate和Mybatis来实现对数据库的增删改查等操作,该层实现的都是用于操作数据库的最基础的方法,实现这些基础方法后往上向业务层提供方法。

配置文件

配置文件通常有三个,分别是web.xml、applicationContext.xml和springmvc-config.xml。
web.xml:用于配置以下两个配置文件及其他全局设置。有客户端请求时第一个访问的就是该文件。
applicationContext.xml:用于业务逻辑组件、数据访问组件的IOC配置。除此之外呢,还包括数据源dataSource、session工厂sqlSessionFactory、事务管理trasactionManager等的配置。
springmvc-config.xml:该文件同样可用于配置控制器Controller扫描器,除此之外还包括视图解析器、文件上传等配置内容。

访问过程


当客户端对发出末尾为*.do的请求时(此处以toLogin.do为例),首先访问web.xml

 <servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern><!-- /拦截所有的请求,*.do拦截访问请求地址后缀是.do的 --></servlet-mapping>

Web.xml发现请求以do结尾,于是进行拦截并找到合适的controller,此处找到了UserController

   @RequestMapping("/user")@Controllerpublic class UserController {@RequestMapping("/toLogin.do")public String toLogin(){return "login";}}

UserController类对于该请求做出了调用toLogin方法的处理,返回了字符串“login”,又因在springmvc-config.xml配置了视图解析器

 <!-- 配置视图解释器ViewResolver --><bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean>

于是“login”加上了前缀/WEB-INF/jsp/和后缀.jsp,“增胖后”的login变成了“/WEB-INF/jsp/login.jsp”,于是spring按照该路径找到了该jsp页面并返回给了客户端。

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!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>Insert title here</title>
</head>
<body>
66666
</body>
</html>

于是出现了下图

注:本人是编程初学者,文章或有错误,欢迎指正。

spring+springMVC+mybatis 上篇相关推荐

  1. Java项目:在线水果商城系统(java+JSP+Spring+SpringMVC +MyBatis+html+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 区分为管理员用户和普通用户,普通用户:用户注册登录,首页水果展示,商品分类展示,购物车添加,下单,订单查询,个人信息修 ...

  2. Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6973266.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(九)--My ...

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

    使用IDEA创建Spring + SpringMVC + MyBatis 框架的Maven的项目. 一. 创建maven项目 1. File -> New Module,进入创建项目窗口. 2. ...

  4. Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6985816.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十)--My ...

  5. Spring+SpringMVC+MyBatis深入学习及搭建(十七)——SpringMVC拦截器

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7098753.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十六)--S ...

  6. Maven整合SSM框架(maven+spring+springmvc+mybatis)

    啊哈,终于到了用Maven整合SSM这个扑街含家产了.弄了整整一天才跑通.Mybatis的配置有些繁琐,跟之前学习的那个有点出去,加上Eclipse的Spring工具没有弄,配置的时候没有提示被搞蒙圈 ...

  7. Spring+SpringMVC+MyBatis深入学习及搭建(十四)——SpringMVC和MyBatis整合

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7010363.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十三)--S ...

  8. 基于Spring+SpringMVC+Mybatis的分布式敏捷开发系统架构(附源码)

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 作者:zheng gitee ...

  9. 基于Spring+SpringMVC+Mybatis的分布式敏捷开发系统架构

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:又一程序员进了ICU:压垮一个家庭,一张结算单就够 个人原创100W+访问量博客:点击前往,查看更多 前言 本项 ...

最新文章

  1. platform_driver_register适配的两种方式及probe是否启动与硬件关系
  2. 本来想用“{{”秀一波,结果却导致了内存溢出!
  3. 线索二叉树(基于链表存储树结点)
  4. 交叉报表crosstab隐藏列名显示_SAP软件 报表查询之 输出格式设置
  5. Webpack实战(三):作为前端你不得不懂的Webpack资源入口和出口的配置
  6. java中的等待_Java中更好的等待语法
  7. Repeated column in mapping for entity
  8. 零成本赚钱小项目,轻松操作,完整版笔记分享给你
  9. c++简单复数计算器
  10. 使用EasyExcel的坑
  11. 多多情报通:拼多多视频上传多久审核?如何发布新品?
  12. 淘宝拍立淘以图搜图接口:使用方法和指南
  13. 说话技巧:成为谈话高手必不可少的十个特点
  14. 乌鸦搜索算法和粒子集群算法_乌鸦和乌鸦
  15. Keras Tuner自动调参工具使用入门教程
  16. Wannafly挑战赛14 A:直角三棱锥
  17. 是CEE、DCB、DCE还是EEDC?
  18. 搞搞 Prometheus 的告警原理
  19. 【项目介绍】ElasticSearch7+Spark 构建高相关性搜索服务千人千面推荐系统
  20. 爱普生(EPSON)喷墨打印机清零工具SSC Service Utility V4.3中文版使用说明(转载)

热门文章

  1. uni-app日期选择组件-基于mx-datepicker修改
  2. CSDN【精品专栏】第七期
  3. 金蝶kis记账王报表应用方法
  4. linux cocoapods安装过程,CocoaPods安装过程详细
  5. Opencv——视频跳帧处理
  6. Java真题笔记|华为
  7. 中国老婆和韩国老公的故事
  8. 微信公众平台使用百度API查询天气预报
  9. 【WPF学习手记】利用fo-dicom读取DICOM文件
  10. php gpc,【php】请问PHP中$_GPC[ ]怎么用?