您的位置:首页 > 其它

电子商城项目 (五)实现首页的分类查询以及展示最新最热商品

2019-03-10 16:40 363 查看

项目已上传GitHub,请点击这里访问下载

当登录首页的时候,需要对数据库进行查询,在页面的最上栏展示出商品的分类信息。如下图:

一、版本一

当我们登录首页的时候,就请求IndexServlet进行对数据库中的分类信息进行查找。然后将查找的内容放入request中并返回,这里不建议用session存值,
如果请求用户一多,如淘宝、京东等网站,服务器就会为每一个用户存一个session值,对服务器消耗过大。但随之带来的问题是,只能在首页进行显示分类信息,在其他(同样包含header.jsp,这里面包含着显示商品分类的代码)的页面。就没有办法展示出分类信息,因为request中的值的范围只对本次请求有效。

  1. 登录首页的时候,直接请求IndexServlet

  2. IndexServlet调用service层获取商品分类信息

  3. dao层的代码

弊端:分类信息只存在首页,其他页面不存在

二、版本二

可以在header.jsp页面的最下面加一个Ajax请求,通过Ajax来获取商品的分类信息,然后将商品的分类信息写入网页上,这样只要包含header.jsp这个页面的网页,都可以显示出商品分类的信息。

  1. header.jsp中Ajax请求

  2. CategoryServlet代码

  3. 这样在每一个包含header.jsp的页面可以展示出分类信息
    首页的商品分类信息

登录界面的商品分类信息

这样还有很大的弊端,只要加载header.jsp页面,就会对数据进行查询操作,当用户量比较多的话,对数据库的查询访问过于频繁,会影响整个项目的效率,可以试着采用redis数据库进行改进,CategoryServlet首先访问redis中的分类信息,如果有,直接拿来用,不用再去查找MySQL数据库,如果没有,去查询MySQL,然后将分类信息存入redis中方便后面使用,以此来提升效率。

三、展示最新最热商品

商品的信息都在数据库中,需要在首页展示的话,同样也需要对数据库进行查询,这部分的难点主要是进行数据库查询的语法。

获取最新的九件商品
select * from product where pflag=0 order by pdate desc limit 0.9;
获取最热的就见商品
select * from product where pflag=0 and is_hot=1 order pdate desc limit 0,9;

  1. 当访问主页的时候,首先访问IndexServlet,获取到最新及最热的商品
  2. 调用Service层代码

  1. Dao层查询的具体实现

  2. index.jsp界面的代码,利用for循环,将存放在request中的商品信息展示出来

  1. 最终效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐