基于jsp和servlet编写的网上商店 1

DBUtil:

这里有一个如何遍历map的注意点:!!!!

注意点2:就是导入的东西如果是sql下面的,优先选择

基于jsp和servlet编写的网上商店 1

1.创建一个QueryRunner对象,用它来执行query方法

参数:

sql语句

handler是用来处理结果集的(有好几种)

用来填写对应?的值

1.删除

基于jsp和servlet编写的网上商店 1

2.修改

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

3.插入

基于jsp和servlet编写的网上商店 1
基于jsp和servlet编写的网上商店 1

4.查询

增删改都是使用update方法,查询使用query方法

查询里面会用到handler对象

对于处理不同的处理结果,会有不一样的handler,一共有8种

handler

使用什么样的handler就会有什么样的返回值

1.ArrayHandler处理结果集

它只会查询到一条记录,它会把这条记录封装成一个数组
基于jsp和servlet编写的网上商店 1
基于jsp和servlet编写的网上商店 1

2.ArrayLIstHandler处理结果集

基于jsp和servlet编写的网上商店 1

得到多条记录,这就是arraylisthandler和arrayhandler的差别

3.BeanHandler处理结果集

基于jsp和servlet编写的网上商店 1

他是按照名字来设置这些数据的,把数据库中查到的数据,放到Good对象中

这样就需要创建一个数据模型和我们的数据库表中的数据做对应

基于jsp和servlet编写的网上商店 1

从数据库中查出的数据和java类中的对象属性做对应,组装成一个对象,有了对象以后就很方便的取出需要的数据

4.BeanListHandler

但是上面的beanhandler只能取得一条记录,就需要BeanListHandler

基于jsp和servlet编写的网上商店 1

5.ColumnListHandler获取某一类

如果你只需要取出表中的一列记录,比如所有商品的名称,就用这个handler

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

6.ScalarHandler是这个结果集只有一个数据的情况

基于jsp和servlet编写的网上商店 1

7.MapHandler

基于jsp和servlet编写的网上商店 1

8.MapListHandler

基于jsp和servlet编写的网上商店 1

打开项目到servlet中,跳转到jsp页面

第一步:因为datasource只要有一个(相对于连接池),连接则可以有多个

基于jsp和servlet编写的网上商店 1

连接(2种方法):

第一种

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n3fjjTi5-1603342353637)(C:\Users\lwr\AppData\Roaming\Typora\typora-user-images\image-20201021171209970.png)]

第二种

基于jsp和servlet编写的网上商店 1

第二种是在利用事务进行CRUD的时候,我们需要拿到connection对象,才可以开启事务,第一种方式不能拿到connection对象

默认欢迎界面

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

把html改成jsp页面,再添加上面2个头部声明,声明jsp使用的语法格式和语言等等

另一个是jstl的标签库,引用之前要保证jstl的jar包引入了

基于jsp和servlet编写的网上商店 1

servlet

基于jsp和servlet编写的网上商店 1

提取公共的jsp(头和尾)

把头和尾的jsp包含到其他jsp页面中,这样子的话就不用

基于jsp和servlet编写的网上商店 1

包含头部

基于jsp和servlet编写的网上商店 1

尾部

基于jsp和servlet编写的网上商店 1

包含尾部

基于jsp和servlet编写的网上商店 1

查询热销商品

sql分析

得到热销商品的id以及详细信息(内连接)

基于jsp和servlet编写的网上商店 1

这是查询出type=2的表,但是还需要它所属于的系列

基于jsp和servlet编写的网上商店 1

这个时候就需要它所属的类目(type)

基于jsp和servlet编写的网上商店 1

需要再前端展示的是 类型名:经典系列 名字:夜礼服 价格:299 图片 以及id用来查找这个商品

基于jsp和servlet编写的网上商店 1

sql语句

基于jsp和servlet编写的网上商店 1

使用sql来实现热销商品的查询

数据模型的创建

首先创建GoodsService,GoodsDao,然后创建model层对象

Goods

基于jsp和servlet编写的网上商店 1

在数据库中的外键,在我们的对象里面,需要这样子去表示,如下:

基于jsp和servlet编写的网上商店 1

Type

基于jsp和servlet编写的网上商店 1

Recommend

基于jsp和servlet编写的网上商店 1

修改:需要关联一个商品

基于jsp和servlet编写的网上商店 1

dao

1.有异常都抛出去,dao层就做增删改查的操作,其他的丢给service层

基于jsp和servlet编写的网上商店 1

service

在service层中要去try-catch我们的异常

基于jsp和servlet编写的网上商店 1

servlet

基于jsp和servlet编写的网上商店 1

以上就会把数据传递到我们的jsp页面上去,接下来要把我们的热销产品展示在我们的页面上

把传递过来的数据展示在我们的页面上

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1
jstl的foreach 遍历我们的这个div图层,这里面有个items=“${el表达式}” 取个别名叫 g

然后再修改里面的数据

基于jsp和servlet编写的网上商店 1
绝对路径

其他的修改

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

个人想法:

就是把数据库中的东西赋值到我们的map中,或者bean中,然后通过调用就可以使用,这里用了el表达式来调用

查询新品

其实热销和新品没有什么区别,为了防止代码冗余,我们就在热销上进行代码的修改

dao层修改

基于jsp和servlet编写的网上商店 1

再修改个名字,不能叫getHotGoodsList了

基于jsp和servlet编写的网上商店 1

然后在service这边调用的话

基于jsp和servlet编写的网上商店 1

在service这边进行修改

基于jsp和servlet编写的网上商店 1

在servlet中修改

基于jsp和servlet编写的网上商店 1

在页面 中删掉多余的div 保留一个模板

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

查询条幅商品(最上面的)

基于jsp和servlet编写的网上商店 1

service层中

基于jsp和servlet编写的网上商店 1

servlet层中

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

查询类目1.在application中放参数

创建监听器,监听application的创建

基于jsp和servlet编写的网上商店 1基于jsp和servlet编写的网上商店 1

创建dao

基于jsp和servlet编写的网上商店 1

创建service

基于jsp和servlet编写的网上商店 1

以及类目的Bean

基于jsp和servlet编写的网上商店 1

监听器

这里面在application(arg0.getServletContext())里面放入type(类目)的所有类型,传递给前端

基于jsp和servlet编写的网上商店 1

这样子,所有的页面就都可以获取到类目

查询类目2.在head.jsp中显示

添加jstl的声明

C:\Users\lwr\AppData\Roaming\Typora\typora-user-images\image-20201021224749565.png)]

这样子就可以从数据库中取出type的类型,并且只需要取出一次

基于jsp和servlet编写的网上商店 1

效果

基于jsp和servlet编写的网上商店 1

创建分页的数据模型

封装起来是为了后期的开发
基于jsp和servlet编写的网上商店 1

310创建Servlet控制商品列表页面跳转

首页的跳转

基于jsp和servlet编写的网上商店 1

点击商品分类的跳转

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

会传递一个参数给我们的servlet

基于jsp和servlet编写的网上商店 1

获取商品分类中的商品,显示,并分页

311-创建分页查询的方法

基于jsp和servlet编写的网上商店 1

先获取到这些id的值

dao层

基于jsp和servlet编写的网上商店 1

Service层

基于jsp和servlet编写的网上商店 1

在servlet中调用service层中的方法,然后在jsp页面上去显示这些数据

基于jsp和servlet编写的网上商店 1

jstl标签 修改jsp页面

基于jsp和servlet编写的网上商店 1

商品列表的显示,默认显示第一页,默认每一页显示8条数据

获取分页数据模型并传递到页面上(不理解)

基于jsp和servlet编写的网上商店 1

接下来因为需求不同,我们还需要展示分页的数据模型,所以要对这个方法进行修改,并且之前的service被抛弃了

Dao层

基于jsp和servlet编写的网上商店 1

写一个新的service

基于jsp和servlet编写的网上商店 1

查询当前总记录数,我们只需要总记录数,不用传递pageNo

基于jsp和servlet编写的网上商店 1

最后代码

基于jsp和servlet编写的网上商店 1

在servlet中

基于jsp和servlet编写的网上商店 1

在jsp中

基于jsp和servlet编写的网上商店 1

小错误

在分页的数据模型中:

基于jsp和servlet编写的网上商店 1

分页的前端显示

基于jsp和servlet编写的网上商店 1

因为前端需要一个id,当我们点击首页的url(上面)

基于jsp和servlet编写的网上商店 1

首页和上一页

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

下一页

基于jsp和servlet编写的网上商店 1

尾页

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

显示商品列表所属的商品分类

基于jsp和servlet编写的网上商店 1

dao层

基于jsp和servlet编写的网上商店 1

service层

基于jsp和servlet编写的网上商店 1

servlet层

基于jsp和servlet编写的网上商店 1

再把t传递出去,当id==0时,t的值为null

基于jsp和servlet编写的网上商店 1

在jsp页面中

基于jsp和servlet编写的网上商店 1

错误

当后面一个为0时,下一页和尾页可以点击

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1

基于jsp和servlet编写的网上商店 1