分层结构(三层):
表示层
业务逻辑层
数据访问层
实体层:
1. 命名:类名与数据库中的表名一致。表中的字段对应实体类中的属性。实体类中只有属性及属性get set方法。也叫JOPO。
2.通常下数据库中有多少表,应用程序中就中多少实体类。优点:
1. 层分工明确,各司其职。
2. 有利于合作开发、团队开发。
3. 健壮性,可扩展性。
4. 类与类之间实现了解耦。
5. 上一层知道下一层的存在,但下层不知上层的存在。
缺点:
1. 代码量增加。
程序更加复杂。
数据访问层:
BaseDao类:管理数据连接对象,释放资源,执行增、删、改操作的方法,建议方法写成静态的,便于调用
接口中的命名规则:表名+Dao 负责方法的约束,需要哪些方法去访问数据库。
接口中实现类的命名规则:表名+Dao+Imp 负责方法的实现,正直与数据库进行交互。
业务逻辑层:
业务逻辑接口,:表名+Biz(Service) 只负责业务方法的约定,不做实现。
业务逻辑接口实现类:表名+Biz(Service)+Impl ,来做具体业务方法的实现。
业务逻辑层的方法通常情况下包含了数据访问层的方法及更多的业务处理方法。
Servlet:
Servlet是一个运行服务器端的Java应用程序。
Servlet 是一个基类,每一个页面在第一次访问时,这个Jsp页面最终会编译成一个Servlet类,并保存在:服务器的Tomcat8.0\work\Catalina\localhost\jspDay01\org\apache\jsp目录中. 生成Servlet的命名规则是比如说有一个index.jsp页面,则生成的Servlet名称为:index_jsp.java
Servlet类是一个单例模式,也就是说是一个单例类。
在开发中JSP是页面,页面的数据处理,都是提交到后台的Servlet中来进行。所以Jsp与Servlet同属于表示层。
Servlet的生命周期:
应用程序启动,Servlet是不会创建的,当第一次请求时,Servlet对象创建,然后就一直驻留在服务器,要到应用程序关闭时,这个Servlet才会销毁。
单例模式:
所谓单例模式就是说一个类只能创建一个实例(对象、实体)。
如何创建单例模式?
条件如下:
1. 构造函数必须私有化。因为只能私有化构造函数,才可避免外部随意创建对象。
2. 必须向外公开一个静态方法,此方法可以取得这个类的实例。
单例模式创建的方式:
1. 一种懒汉式,不建议用,因为会有线程同步的形象,除非做线程同步处理。
//类自身的对象private static Student student=null;
//向外公开静态方法,返回此类的实例,
//因为这个类不能在外部创建对象,此方法只能通过类名来访问
public static Student getsStudent(){
//这种方式叫懒汉式,对象原本是没有创建,是在调用的时候创建
if(student==null)
student=new Student();
retrun student;
}
2饿汉式
//类自身的对象
private static Student student=new Student();
//向外公开静态方法,返回此类的实例,
//因为这个类不能在外部创建对象,此方法只能通过类名来访问
public static Student getsStudent(){
//这种方式叫饿汉式,对象早以创建,调用时直接放回
retrun student;
}
servlet方式执行过程
1. 构造方法被执行
2. Init方法初始化方法被执行
3. doGet 或 doPost 方法被执行
4. 在应用程序结束后,destroy方法才会被执行。
Servlet对象创建的过程:
Servlet在第一次请求时,根据URL找到逻辑名称,再通过逻辑名称找到物理类,最后由Tomcat中的Servlet容器来创建对象,然后就一直驻留在服务的Servlet容器中,下一次请求就直接从容器中取,不会再一次生成Servlet新的对象。所以叫单例模式。要到应用程序关闭后,Servlet对象才从服务器的Servlet容器中释放。这就是所谓的Servelt生命周期。
参数的添加:
在Servlet节点中加入:
<init-param>
<param-name>a</param-name>
<param-value>10</param-value>
</init-param>
在init(ServletConfigconfig)方法中加入ServletConfig参数,config参数中就封装了配置文件中的数据,通过config.getInitParameter("a")方式进行获取. 这个做法通常用于在初始化Servlet时传递一些数据时应用。
过滤器的工作原理:
在请求的过程中,可以加入多个过滤器,这种情况叫过滤器链,请求的过程是依次通过每一个过滤器,在响应时,时原路返回,也需要通过每一个过滤器,顺序反方向。
过滤器的实现方式:
1.过滤器也是一个类,必须继承自Filter接口。
2.实现Filter类中的doFilter方法。
3.在doFilter方法中实现过滤的要求。
过滤器的生命周期:
过滤器的生命周期:比Servlet的生命周期要长,因为过滤器是在应用程序启动就创建了。一直要到应用程序关闭才销毁。生命周期分:实例化、初始化、执 行过滤、销毁。
过滤器的配置:配置也需要放在web.xml文件中进行配置,配置与Servlet差不多,只是节点名称不同。