Servlet组件
JavaBean组件和纯JSP相比,能够分离业务逻辑,但是JSP页面仍然包含控制逻辑。MVC模式能进一步从V层中分离出控制逻辑代码,形成Servlet,这就是所谓的Model2模式。
1.创建Servlet的两种方法:
①使用继承HttpServlet的方式创建Servlet
public class MyHttpServlet extends HttpServlet{
}
②使用实现接口javax.servlet.Servlet方式创建Servlet
public class MyServlet impletements Servlet{
}
2.配置Servlet类的两种方法:
①在web.xml里配置Servlet。(在Dynamic Web Module2.5及更低版本中,不支持@WebServlet注解,只能手工在web.xml中配置)
②在Servlet类名前使用@WebServlet注解,不需要在web.xml里配置Servlet。(前提要求是继承抽象类HttpServlet创建Servlet,且项目是Dynamic Web Module3.0及以上版本)
MVC模式
MVC模式将项目划分为模型(Model)、视图(Views)和控制器(Controller)三个部分,分别对应于内部数据(使用JavaBean)、数据表示(使用JSP作为视图),以及输入、输出控制(使用Servlet)。
M指主要的业务逻辑,包括实体类、接口及其实现类,还有数据访问层(dao)。
例如:
Java Web的MVC实现模式:
在实际项目开发中,为了使程序结构松耦合、易于扩展与维护,经常使用DAO设计模式,其基本原理是控制层调用服务层(业务层),服务层调用数据库访问DAO层,控制层将处理的结果转发至表现层的视图页面呈现。其中,服务层和DAO层包含大量的接口与实现类,DAO层会涉及模型层的实体类甚至ORM框架。
在基于MVC的项目里,程序分层实现的要点如下:
①包mvc.servlet用于存放Servlet控制器文件,与之前的Servlet相比,它不再包含具体的业务实现逻辑,而是调用服务接口,控制器被用户请求调用。
②包mvc.service用于存放定义了若干服务接口的接口文件,而包mvc.service.imp则用于存放相应于接口的实现类文件,这两个包对应于服务层(业务层),被控制层调用。
③包mvc.dao用于存放定义访问数据库的接口文件,而包mvc.dao.imp则存放这些接口的实现类文件,这两个包对应于数据访问层,供服务层调用。
④包mvc.util存放封装了数据库访问的类文件MyDb.java,提供了连接数据库和CRUD方法,供数据访问层调用。
即:控制层 调用 > 服务层(业务层) 调用 > 数据访问层 调用 > 工具层
(servlet) (service) (dao) (util)