1.说一下Servlet的生命周期
A:定位:用户根据地址请求指定的servlet,web.xml根据用户输入的地址,定位到具体的servlet。
B:加载:将找到的servlet类加载到web容器中(servlet容器)。
C:实例化:调用默认无参构造函数,实现servlet的实例化。
D:初始化:调用Init方法,实现成员变量的初始化。
E:服务处理:servlet的service方法接收用户请求,根据当前用户请求的方式是get还是post,service自动将用户请求传递到doGet和doPost方法中进行处理。处理完成后,产生响应结果。
F:销毁:调用destroy方法,实现servlet的释放工作。
服务器关闭时进行释放。或者是servlet产生改变重新加载前进行释放原来的servlet。
注意:在servlet容器中,一个servlet只会产生一个一个实例对象进行工作。
2.为什么使用Hibernate,Hibernate执行流程。
1. 封装了jdbc,简化了很多重复性代码。
2. 简化了DAO层编码工作,使开发更对象化了。
3. 移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
4. 支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻
量级框架。
Hibernate执行流程:
1. 通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件。
2. 由hibernate.cfg.xml中的读取解析映射信息。
3. 通过config.buildSessionFactory();//得到sessionFactory。
4. sessionFactory.openSession();//得到session。
5. session.beginTransaction();//开启事务。
6. persistent operate;
7. session.getTransaction().commit();//提交事务
8. 关闭session;
9. 关闭sessionFactory;