商城项目(1.0版本)第二篇

主要内容: 抽取公共页面 购物车的实现

一,抽取公共页面
将一些页面公共的部分 ,单独抽取出来.方便维护与管理.
一般有两个 头部分 与为部分. 此项目为hearer.jsp 与 footer.jsp
调用:

<%@ include file="/jsp/header.jsp"  %>

二,获取分类信息
版本一:
在这里插入图片描述出现一个问题,首页有查询的分类信息

在这里插入图片描述
但是注册页面没有分类信息
在这里插入图片描述原因:注册页面有没调用分类的方法.
解决方案:在注册的Servlet中实现调用分类的方法,并将数据存放到request中.
弊端代码冗余.

版本二:每个页面都有header.jsp,所以
通过ajax请求CategoryServlet—>getAllCates得到分类的数据,转成JSON格式.

原理图:
在这里插入图片描述

<script>

	$(function(){
		//通过ajax请求CategoryServlet--->getAllCates得到分类的数据,转成JSON格式.
		var url = "/store/CategoryServlet";
		var json = {"method":"findAllCates"};
		
		$.post(url,json,function(data){
			//jquery遍历数据
			$.each(data,function(i,obj){
				var li="<li><a href='#'>"+obj.cname+"</a></li>";
				$("#myUL").append(li);
			}); 
	
		} ,"json");
	});

</script>

/ /调用业务层的得到分类的方式
CategoryService cs= new CategoryServiceImp();
List list= cs.getAllCates();

		//将lsit 集合转成Json格式
		String jsonStr = JSONArray.fromObject(list).toString();
		System.out.println(jsonStr);
		//将数据响应到客户端
		//告诉浏览器本次响应的数据类型为json
		resp.setContentType("application/json;charset=utf-8");
		resp.getWriter().write(jsonStr);

弊端:每次都要请求数据库,影响性能

版本三:redis

在这里插入图片描述导入jar包,和utils类

Jedis jedis = JedisUtils.getJedis();
	String jsonStr = jedis.get("AllCates");
	if(null == jsonStr || "".equals(jsonStr)){
		
		System.out.println("redis中没有数据");
		//调用业务层的得到分类的方式
		CategoryService cs= new CategoryServiceImp();
		List<Category> list= cs.getAllCates();
		
		//将lsit 集合转成Json格式
		jsonStr = JSONArray.fromObject(list).toString();
		//将数据响应到客户端
		//告诉浏览器本次响应的数据类型为json
		jedis.set("AllCates", jsonStr);
		resp.setContentType("application/json;charset=utf-8");
		resp.getWriter().write(jsonStr);
	}else{
		System.out.println("redis中有数据");
		resp.setContentType("application/json;charset=utf-8");
		resp.getWriter().write(jsonStr);
	}
	
	JedisUtils.closeJedis(jedis);

三,首页显示最新最热商品

在这里插入图片描述
商品详情
在这里插入图片描述Servlet的弊端:为什么现在的开发不用Servlet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值