一:Java EE开发模式
模式,也就是我们常常讲究的“套路”,是历代程序员总结出的一套约定俗成的设计模式。
(1)Java EE 经历过的模式:
曾经的model1模式:
技术组成:jsp + JavaBean
model1的弊端呢也是显而易见的,随着业务的复杂性,导致了jsp里面代码十分的混乱。
现在的model2模式:
技术组成:jsp + servlet + javabean
model2的优点:
开发中使用各个技术擅长的方面,其中servlet擅长处理业务的Java代码,jsp擅长页面的显示。
所以就引申出我们现在的MVC模式:—web开发的设计模式
二:MVC
前面说到MVC就是web开发的设计模式(web开发都有的),MVC指的是:
*M: Model — 模型 javaBean(遵循一种固定方法的类)来封装数据。 *
V:View — 试图 jsp 单纯的进行页面的显示
C:Controller — 控制器 Servlet:获取数据,对数据进行封装–转发数据–指派给jsp页面来显示数据
三:Java EE 的MVC—三层架构
(1)我们知道在之前我们服务器开发的时候,把所有的操作基本上都写在了servlet里面,这就使得模块化的思想不能体现,也使servlet十分复杂,功能太多.
所以我们依据MVC模式来为Java EE 构建了一种开发模式,称为Java EE的三层架构。
(2)在服务器的开发时,分为三层:
web层:收集页面的数据,封装数据,指定响应jsp页面(与客户端进行对接交互)
service层:顾名思义 来进行复杂业务处理和运算的
dao层 :这层主要是与数据库进行交互
(3)开发实践时 三层架构通过我们编译器的包结构来体现
domain:是我们的实体类,里面会存放我们的JavaBean类
utils:是我们的工具类,繁琐的代码编写成工具类可使代码清晰
四:案例实现—显示商城商品
我们总共就依据我们的三层架构分为三个方向来编写代码,实现这个demo。
1.准备工作:
搭建好IDEA开发环境(web开发),连接Tomcat服务器,连接MySQL数据库,检查数据库中数据完整
导入必须的lib包以及配置文件:
(1)由于要用到数据库和连接池,我们会导入c3p0以及dbutils(特有工具类)和我们mysql-connector
(2)由于我们的jsp文件要动态显示,要用到jstl标准标签库,所以会导入jstl和standard
(3)由于要使用连接池dbutils工具类,所以我们还需要导入c3p0的配置文件,写好连接数据库的配置
2. 导入前端所给的jsp页面(里面有header和footer等等),放在web下即可
3. 搭建好三层架构,web service dao,并创建domain实例和编写好的utils工具类
domain的实例代码和utils工具类的代码跳过—————————-
第一层:web层–servlet类
首先先将请求传至service的进行业务操作,创建一个service对象和一个存储数据的集合list,进入service的findAllProduct方法()
里面通过操作,拿取出并存储数据,然后转发给jsp页面进行显示。
先将数据存储到request域中,在转发给jsp页面。
第二层:service层
由于我们此demo中没有什么特别的业务操作,所以就只有调用dao层的方法,进入dao层。
第三层:dao层
利用QueryRunner核心类通过dbutils来用SQL语句操作数据库,拿取到所有的数据存储到list集合中,再依次将list return回我们的web层进行数据的交互。