JavaWeb之MVC设计模式
写Java Web项目时会发现,一个中型或者大型项目 随着代码的增多,会发现:代码既可以写在src目录下,也可以
写在WebContent目录下。src下可以建很多包 ,WebContent下可以建很多文件夹。
所以问题就来了:一个新的类 到底往哪个目录下的哪个文件夹里写?
此时解决办法就是:需要一个模式去规范,到底哪个类该往哪里写。
1.mvc
在Web MVC模式下,模型无法主动推数据给视图,如果用户想要视图更新,需要再发送一次请求(即请求-响应模
型)。
M(Model) 模型 : 应用程序的核心功能,管理这个模块中用的数据和值(bean,dao);
V(View )视图: 视图提供模型的展示,管理模型如何显示给用户,它是应用程序的外观;(jsp/html)
C(Controller)控制器: 对用户的输入做出反应,管理用户和视图的交互,是连接模型和视图的枢纽。
(servlet/service)
2.三层架构
三层架构 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层
(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 jsp/html
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
servlet,service
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。dao
表现层实现的代表作品是Struts,springmvc框架,
业务层实现的代表作品是Spring,
持久层实现的代表作品是Hibernate,mybatis。
层就相当于一个黑盒子,我们不用知道它内部怎么实现,只需要知道如何去调用它就行了。每层只与上下相邻的两
层打交道。当一层内部由于技术变迁发生变化时,只要接口不变,其他层不用做任何改变。分层之后灵活性提高,
也便于团队分工开发。
3.三层架构和MVC的区别和联系
设计demo
1.包结构
SRC目录下
创建com.java.web包,下面存放对应的servlet的代码。
创建com.java.service包,下面存放业务逻辑的代码。servlet和dao的衔接层,servlet调取service,service调取dao。
创建com.java.dao包,下面放数据库的操作信息。
创建com.java.bean包,下面放实体类。
创建com.java.util包,下面放工具类。
2.DemoM-model,模型层,bean包和dao包
查询数据库学生表中学生的所有信息
1.创建上述包
2.部署
2.1.页面上加入请求指令
<h1><a href="/getallstudent">student</a></h1>
2.2.在web包新建一个类,存放servlet
1.创建xxServlet类
2.继承与 HttpServlet
3.重写service方法
package com.java.web;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;