spring+springMVC+mybatis 上篇

三层结构

使用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")
    @Controller
    public 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>

于是出现了下图
在这里插入图片描述

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值