首页 > 技术文章 > 三层架构及MVC

MrTanJunCai 2018-11-05 10:42 原文

***************演示商品种类添加(使用model2模型)************************

model1 = jsp + javabean(传统的java类) 淘汰了


javabean: VO 就是一个最简单的javabean


model2 = jsp(V视图) + javabean(M模型) + servlet (C控制器)

 

**********************MVC设计模式*******************************

23种 MVC是一种综合的模式 是架构模式

 

M: Model 模型

1. 数据模型

VO Category

存储数据

2. 业务模型

CategoryService

完成真正的业务逻辑


V: View 视图


JSP、freemarker

用来给用户显示信息


C: Controller 控制器


Servlet 相当于项目经理,起统揽大局、调配作用


(1)填充数据
(2)调用业务逻辑
(3)转发视图

 

**********************javaEE三层架构*******************************

分层思想

一. 持久层

DAO+ VO

职责: 负责把数据 持久化到 数据库中(可掉电存储设备中)


二. 业务层

Service


三. 表现层

servlet + jsp

 

单一职责原则: 一个类尽量只完成一个功能

 


**********************"强大"的servlet*******************************


初学者容易犯的错,直接在servlet中写业务逻辑代码, 比如连接数据库等..


这样控制器不仅完成调配大局的作用 而且也完成了 业务逻辑(项目经理亲自下来搞开发)


这种servlet 叫做 "强大"的servlet 可读性差、不好维护、类的复用性差...等


控制器应该调用业务逻辑...而不是把业务逻辑直接写到控制器中

 

********************Servlet的创建时机***************************


Servlet的创建时机有两种

一.用户第一次访问的时候

二.Tomcat启动时就会把servlet对象创建出来


**************servlet的生命周期(面试题)***************************

一. 类加载

二. 创建servlet对象

HelloServlet hs = new HelloServlet();


三. 调用init()来初始化Servlet配置信息

hs.init(ServletConfig config);


四. 调用service()方法


1. GenericServlet

service(ServletRequest request,ServletResponse)


用来接收用户的请求 并且做出相应的....


2.HttpServlet类
service(HttpServletRequest request,HttpServletResponse)


这个service中根据用户的请求方式的不同,get请求帮你调用doGet(),
post请求 帮你调用doPost

 

五. destory()

1. 服务器关闭时

2. 应用被移除时


3. Servlet对象 长时间不用的时候


六.类卸载


第一个访问: 类加载--->service()

第二次访问同一个servlet, 不会再创建servlet对象(同一个servlet类 只有一个servlet 单实例的)

直接调用service方法..

 

针对每一个客户端的请求, tomcat会为它单独起一个线程,该线程用来接收

这个用户的请求并作出响应...在这个线程中调用servlet对象的service()方法

为客户提供响应..

 

**********************Servlet是单例的**************************


一个Servlet类 只会在堆中创建一个servlet对象

只有一个servlet对象

 

推荐阅读