***************演示商品种类添加(使用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对象