第19章WEB19-网上商城实战篇
今日任务
Ø 完成分类模块的功能
Ø 完成商品模块的功能
1.1 前台分类模块的功能:1.1.1 需求:

1.1.2 分析:
使用异步的方式完成分类的加载:
1.1.3 代码实现:
在首页上添加事件:
$(function(){
异步加载分类的数据;
});
创建分类的表:
CREATE TABLE category (
cid varchar(32) NOT NULL,
cname varchar(20) DEFAULT NULL,
PRIMARY KEY (cid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建分类的相关的类:
相关代码的实现:异步加载分类,显示JSON数据:
每个页面上都由分类的信息,每次进行页面跳转的时候都需要去连接数据库进行查询:这样效率很低.需要优化当前程序!!!

  • 将数据存入到缓存中,每次获取的时候从缓存中进行获取.

    • EHCache:Hibernate框架 二级缓存使用
    • Memcached
    • Redis
  • 使用缓存的技术优化程序!!!
    • 引入ehcache的包:
    • 代码实现:
@Override
public List<Category> findAll()throws SQLException {
/*CategoryDao categoryDao = new CategoryDaoImpl();
return categoryDao.findAll();*/
/*** 使用缓存优化程序,先从缓存中获取数据*   * 获取到:直接返回*   * 获取不到:查询数据库,将记录存入到缓存中.*/
// 读取配置文件
CacheManager cacheManager = CacheManager.create(CategoryServiceImpl.class.getClassLoader().getResourceAsStream("ehcache.xml"));
// 从配置文件中获取名称为categoryCache缓存区
Cache cache = cacheManager.getCache("categoryCache");
// 判断缓存中是否有list集合:
Element element = cache.get("list");
List<Category> list = null;
if(element == null){
// 缓存中没有数据
System.out.println("缓存中没有数据 ,查询数据库=====");
CategoryDao categoryDao = new CategoryDaoImpl();
list = categoryDao.findAll();
element = new Element("list",list);
cache.put(element);
}else{
// 缓存中已经存在数据
System.out.println("缓存中有数据 ,没有查询数据库=====");
list = (List<Category>)element.getObjectValue();
}
return list;
}

1.2 前台商品信息的显示:1.2.1 首页上最新商品和热门商品的显示:
创建商品表

CREATE TABLE `product` (`pid` varchar(32) NOT NULL,`pname` varchar(50) DEFAULT NULL,`market_price` double DEFAULT NULL,`shop_price` double DEFAULT NULL,`pimage` varchar(200) DEFAULT NULL,`pdate` date DEFAULT NULL,`is_hot` int(11) DEFAULT NULL,`pdesc` varchar(255) DEFAULT NULL,`pflag` int(11) DEFAULT NULL,`cid` varchar(32) DEFAULT NULL,PRIMARY KEY (`pid`),KEY `sfk_0001` (`cid`),CONSTRAINT `sfk_0001` FOREIGN KEY (`cid`) REFERENCES `category` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建相关的类:
在IndexServlet调用业务层完成查询即可:

1.2.2 显示某个分类的商品:
在首页上点击某个分类:
提交到Servlet:传递分类的ID,当前页数.
1.2.3 显示某个商品详情:
在商品列表页面上点击【某个商品】
提交到Servlet:传递一个pid.
1.2.4 登录的验证码及自动登录及记住用户:

转载于:https://blog.51cto.com/13517854/2125906

JavaWeb19-HTML篇笔记相关推荐

  1. 菜鸟学Linux 第044篇笔记 算法和私有CA

    菜鸟学Linux 第044篇笔记 算法和私有CA 证书吊销列表CRL(Certificate Revocation List ) 如何解决私钥丢失 PKI: Public Key Infrastruc ...

  2. windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux

    菜鸟学Linux 第103篇笔记 pxe自动化安装linux 内容总览 linux的系统安装 kickstart文件的组成部分 DHCP (Dynamic Host Configuration Pro ...

  3. 菜鸟学Linux 第050篇笔记 dhcp

    菜鸟学Linux 第050篇笔记 dhcp DHCP (Dynamic Host Configuration Protocol) 早期bootp (boot protocol) lease Clien ...

  4. 菜鸟学Linux 第090篇笔记 corosync+drbd+mysql

    菜鸟学Linux 第090篇笔记 corosync+drbd+mysql 内容总览 上节回顾 DRBD (Distributed Replicated Block Device) 分布式复制块设备 配 ...

  5. 菜鸟学Linux 第033篇笔记 bootloader,inittab

    菜鸟学Linux 第033篇笔记 bootloader,inittab Linux 系统自启动流程 PC OS (Linux) POST-->BIOS(Boot Sequence)-->M ...

  6. 菜鸟学Linux 第052篇笔记 httpd-install and section2

    菜鸟学Linux 第052篇笔记  httpd-install and section2 apache 17years NCSA, httpd A Patchey Server = Apache FS ...

  7. Linux 日志 klogd,菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd

    菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd Linux上的日志系统 syslog开源 syslog-ng  商业版 日志系统 syslog syslog 服务 syslog ...

  8. python采用pika库使用rabbitmq总结,多篇笔记和示例

    这一段时间学习了下rabbitmq,在学习的过程中,发现国内关于python采用pika库使用rabbitmq的资料很少,官网有这方面的资料,不过是都英文的.于是笔者结合自己的理解,就这方面内容写了一 ...

  9. 菜鸟学Linux 第034篇笔记 vmlinuz, initrd, modules, script

    菜鸟学Linux 第034篇笔记  vmlinuz, initrd, modules, script 内核两部分 核心 /boot/vmlinuz-version 内核模块 /lib/modules/ ...

  10. 菜鸟学Linux 第031篇笔记 script,控制,while,function

    菜鸟学Linux 第031篇笔记 script,控制,while,function 一.脚本需求: 说明:此脚本能于同一个repo文件中创建之个yum源的指向: 1.接受一个文件名作为参数,此文件存放 ...

最新文章

  1. 多个错误多个tryexcept的处理异常处理
  2. luogu 2051 中国象棋
  3. 防止按钮重复点击 模型转字典 接口传参不能用汉字,要转码
  4. mysql 递归查找父节点_MYSQL递归查询,根据子类ID查询所有父类(最全)
  5. MySQL explain结果详解
  6. [C#.NET 拾遗补漏]16:几个常见的TAP异步操作
  7. fileinputstream_Java I/O 流之 FileInputStream
  8. radio 取值赋值 亲测有用实效
  9. Ubuntu下安装Rabbitmq和golang环境
  10. java初级学习04
  11. DAppDiscover | 盘点2018年度十大DAPP
  12. adb shell循环命令_Android adb 命令使用总结
  13. 微波雷达感应模块技术,实时智能检测人体存在,静止微小动静感知
  14. 逻辑思维训练500题及答案
  15. HTTPS中的证书、SSL证书、X509证书 初探 讲解
  16. 普通上班族如何快速买房买车,一个程序员摸索的实操经验分享
  17. 【公开课】国内外公开课网址
  18. splay 模板 洛谷3369
  19. Angular2 模型渲染的一个坑
  20. 计算机硬盘灯不亮,解决办法:如果计算机硬盘驱动器指示灯不亮,该怎么办?解决电脑硬盘指示灯不亮的问题_IT / computer_资料...

热门文章

  1. 字符串格式参数的日期比较函数
  2. 云计算时代的数据库研究
  3. 扩展方法:给 IEnumerableTSource 扩展一个自定义数据源绑定的方法
  4. ASP.NET 常用语句代码
  5. RUBY常用类库文档翻译以及使用示例
  6. matlab实现将彩色图像(R,G,B)色分量的直方图匹配,并计算其相关性
  7. 模板题——单链表双链表,数组模拟的栈和队列,单调栈和单调队列
  8. 使用maven给jar包生成对应的pom文件
  9. ENVI5.4新添加功能简介
  10. jquey控制元素滚动条,外层div滚动,内层顶部div固定不动