通用的servlet设计:
编写一个servlet,重写doget()
在doget方法中我们编写了
if else if …
在页面中
超链接

继续抽取:BaseServlet extends HttpServlet{重写service方法}在service方法中:1.获取访问的servletthis2.获取访问的方法String m=request.getParameter("method")Method method=this.getClass().getMethod(....);3.servlet调用方法即可String path=method.invoke(this,request,response);判断path是否为空 若不为空 意味着要请求转发转发

///
案例1-分类展示
最初的设计
点击首页的时候,查询分类信息
步骤分析:
1.创建分类表
CREATE TABLE category (
cid varchar(32) NOT NULL,
cname varchar(20) DEFAULT NULL,
PRIMARY KEY (cid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

        INSERT INTO `category` VALUES ('1','手机数码'),('172934bd636d485c98fd2d3d9cccd409','运动户外'),('2','电脑办公'),('3','家具家居'),('4','鞋靴箱包'),('5','图书音像'),('59f56ba6ccb84cb591c66298766b83b5','aaaa'),('6','母婴孕婴'),('afdba41a139b4320a74904485bdb7719','汽车用品');2.在indexservlet上查询分类信息3.调用CategoryService.findAll() 返回值是:list完成之后 ,我们发现只有在访问首页的时候才能把分类列表展示出来,怎么办?????要想让所有的页面上都有分类,只需要将 页面上 logo和菜单部分包含进来.怎么去查询分类信息呢????只需要在页面加载成功之后 发送一个ajax请求 异步查询所有的分类信息即可技术:json包含ajax步骤分析:1.编写一个 CategorySerlvet 2.findAll方法用来查询所有list通过json返回到页面上3.在head.jsp加载成功之后发送一个ajax请求$.get(url,params,function(data){},"json");上面的操作我们已经可以在每个页面上查看到分类信息了,但是只要换一次页面就会查询一下数据库,增加服务器的压力,
对于数据不常变化的情况,我们可以使用缓存技术,常见的缓存技术ehcache:今天用,hibernate中底层使用了ehcachememcacheredisehcache使用步骤:1.导入jar包2.编写配置文件3.使用api获取数据先从缓存中获取若获取的值为空再去查询数据库,将数据放入缓存中

//

案例2-首页上的热门商品和最新商品
步骤分析:
页面加载的时候 查询最新商品 和 热门商品即可
在indexServlet的index方法中实现就可以了
查询的结果两个list,将两个list放入request域中,请求转发到index.jsp即可
在index.jsp中展示
准备工作:
数据库和表
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;

    INSERT INTO `product` VALUES ('1','小米 4c 标准版',1399,1299,'products/1/c_0001.jpg','2015-11-02',1,'小米 4c 标准版 全网通 白色 移动联通电信4G手机 双卡双待',0,'1'),('10','华为 Ascend Mate7',2699,2599,'products/1/c_0010.jpg','2015-11-02',1,'华为 Ascend Mate7 月光银 移动4G手机 双卡双待双通6英寸高清大屏,纤薄机身,智能超八核,按压式指纹识别!!选择下方“移动老用户4G飞享合约”,无需换号,还有话费每月返还!',0,'1'),('11','vivo X5Pro',2399,2298,'products/1/c_0014.jpg','2015-11-02',1,'移动联通双4G手机 3G运存版 极光白【购机送蓝牙耳机+蓝牙自拍杆】新升级3G运行内存·双2.5D弧面玻璃·眼球识别技术',0,'1'),('12','努比亚(nubia)My 布拉格',1899,1799,'products/1/c_0013.jpg','2015-11-02',0,'努比亚(nubia)My 布拉格 银白 移动联通4G手机 双卡双待【嗨11,下单立减100】金属机身,快速充电!布拉格相机全新体验!',0,'1'),('13','华为 麦芒4',2599,2499,'products/1/c_0012.jpg','2015-11-02',1,'华为 麦芒4 晨曦金 全网通版4G手机 双卡双待金属机身 2.5D弧面屏 指纹解锁 光学防抖',0,'1'),('14','vivo X5M',1899,1799,'products/1/c_0011.jpg','2015-11-02',0,'vivo X5M 移动4G手机 双卡双待 香槟金【购机送蓝牙耳机+蓝牙自拍杆】5.0英寸大屏显示·八核双卡双待·Hi-Fi移动KTV',0,'1'),('15','Apple iPhone 6 (A1586)',4399,4288,'products/1/c_0015.jpg','2015-11-02',1,'Apple iPhone 6 (A1586) 16GB 金色 移动联通电信4G手机长期省才是真的省!点击购机送费版,月月送话费,月月享优惠,畅享4G网络,就在联通4G!',0,'1'),('16','华为 HUAWEI Mate S 臻享版',4200,4087,'products/1/c_0016.jpg','2015-11-03',0,'华为 HUAWEI Mate S 臻享版 手机 极昼金 移动联通双4G(高配)满星评价即返30元话费啦;买就送电源+清水套+创意手机支架;优雅弧屏,mate7升级版',0,'1'),('17','索尼(SONY) E6533 Z3+',4099,3999,'products/1/c_0017.jpg','2015-11-02',0,'索尼(SONY) E6533 Z3+ 双卡双4G手机 防水防尘 涧湖绿索尼z3专业防水 2070万像素 移动联通双4G',0,'1'),('18','HTC One M9+',3599,3499,'products/1/c_0018.jpg','2015-11-02',0,'HTC One M9+(M9pw) 金银汇 移动联通双4G手机5.2英寸,8核CPU,指纹识别,UltraPixel超像素前置相机+2000万/200万后置双镜头相机!降价特卖,惊喜不断!',0,'1'),('19','HTC Desire 826d 32G 臻珠白',1599,1469,'products/1/c_0020.jpg','2015-11-02',1,'后置1300万+UltraPixel超像素前置摄像头+【双】前置扬声器+5.5英寸【1080p】大屏!',0,'1'),('2','中兴 AXON',2899,2699,'products/1/c_0002.jpg','2015-11-05',1,'中兴 AXON 天机 mini 压力屏版 B2015 华尔金 移动联通电信4G 双卡双待',0,'1'),('20','小米 红米2A 增强版 白色',649,549,'products/1/c_0019.jpg','2015-11-02',0,'新增至2GB 内存+16GB容量!4G双卡双待,联芯 4 核 1.5GHz 处理器!',0,'1'),('21','魅族 魅蓝note2 16GB 白色',1099,999,'products/1/c_0021.jpg','2015-11-02',0,'现货速抢,抢完即止!5.5英寸1080P分辨率屏幕,64位八核1.3GHz处理器,1300万像素摄像头,双色温双闪光灯!',0,'1'),('22','三星 Galaxy S5 (G9008W) 闪耀白',2099,1999,'products/1/c_0022.jpg','2015-11-02',1,'5.1英寸全高清炫丽屏,2.5GHz四核处理器,1600万像素',0,'1'),('23','sonim XP7700 4G手机',1799,1699,'products/1/c_0023.jpg','2015-11-09',1,'三防智能手机 移动/联通双4G 安全 黑黄色 双4G美国军工IP69 30天长待机 3米防水防摔 北斗',0,'1'),('24','努比亚(nubia)Z9精英版 金色',3988,3888,'products/1/c_0024.jpg','2015-11-02',1,'移动联通电信4G手机 双卡双待真正的无边框!金色尊贵版!4GB+64GB大内存!',0,'1'),('25','Apple iPhone 6 Plus (A1524) 16GB 金色',5188,4988,'products/1/c_0025.jpg','2015-11-02',0,'Apple iPhone 6 Plus (A1524) 16GB 金色 移动联通电信4G手机 硬货 硬实力',0,'1'),('26','Apple iPhone 6s (A1700) 64G 玫瑰金色',6388,6088,'products/1/c_0026.jpg','2015-11-02',0,'Apple iPhone 6 Plus (A1524) 16GB 金色 移动联通电信4G手机 硬货 硬实力',0,'1'),('27','三星 Galaxy Note5(N9200)32G版',5588,5388,'products/1/c_0027.jpg','2015-11-02',0,'旗舰机型!5.7英寸大屏,4+32G内存!不一样的SPen更优化的浮窗指令!赠无线充电板!',0,'1'),('28','三星 Galaxy S6 Edge+(G9280)32G版 铂光金',5999,5888,'products/1/c_0028.jpg','2015-11-02',0,'赠移动电源+自拍杆+三星OTG金属U盘+无线充电器+透明保护壳',0,'1'),('29','LG G4(H818)陶瓷白 国际版',3018,2978,'products/1/c_0029.jpg','2015-11-02',0,'李敏镐代言,F1.8大光圈1600万后置摄像头,5.5英寸2K屏,3G+32G内存,LG年度旗舰机!',0,'1'),('3','华为荣耀6',1599,1499,'products/1/c_0003.jpg','2015-11-02',0,'荣耀 6 (H60-L01) 3GB内存标准版 黑色 移动4G手机',0,'1'),('30','微软(Microsoft) Lumia 640 LTE DS (RM-1113)',1099,999,'products/1/c_0030.jpg','2015-11-02',0,'微软首款双网双卡双4G手机,5.0英寸高清大屏,双网双卡双4G!',0,'1'),('31','宏碁(acer)ATC705-N50 台式电脑',2399,2299,'products/1/c_0031.jpg','2015-11-02',0,'爆款直降,满千减百,品质宏碁,特惠来袭,何必苦等11.11,早买早便宜!',0,'2'),('32','Apple MacBook Air MJVE2CH/A 13.3英寸',6788,6688,'products/1/c_0032.jpg','2015-11-02',0,'宽屏笔记本电脑 128GB 闪存',0,'2'),('33','联想(ThinkPad) 轻薄系列E450C(20EH0001CD)',4399,4199,'products/1/c_0033.jpg','2015-11-02',0,'联想(ThinkPad) 轻薄系列E450C(20EH0001CD)14英寸笔记本电脑(i5-4210U 4G 500G 2G独显 Win8.1)',0,'2'),('34','联想(Lenovo)小新V3000经典版',4599,4499,'products/1/c_0034.jpg','2015-11-02',0,'14英寸超薄笔记本电脑(i7-5500U 4G 500G+8G SSHD 2G独显 全高清屏)黑色满1000減100,狂减!火力全开,横扫3天!',0,'2'),('35','华硕(ASUS)经典系列R557LI',3799,3699,'products/1/c_0035.jpg','2015-11-02',0,'15.6英寸笔记本电脑(i5-5200U 4G 7200转500G 2G独显 D刻 蓝牙 Win8.1 黑色)',0,'2'),('36','华硕(ASUS)X450J',4599,4399,'products/1/c_0036.jpg','2015-11-02',0,'14英寸笔记本电脑 (i5-4200H 4G 1TB GT940M 2G独显 蓝牙4.0 D刻 Win8.1 黑色)',0,'2'),('37','戴尔(DELL)灵越 飞匣3000系列',3399,3299,'products/1/c_0037.jpg','2015-11-03',0,' Ins14C-4528B 14英寸笔记本(i5-5200U 4G 500G GT820M 2G独显 Win8)黑',0,'2'),('38','惠普(HP)WASD 暗影精灵',5699,5499,'products/1/c_0038.jpg','2015-11-02',0,'15.6英寸游戏笔记本电脑(i5-6300HQ 4G 1TB+128G SSD GTX950M 4G独显 Win10)',0,'2'),('39','Apple 配备 Retina 显示屏的 MacBook',11299,10288,'products/1/c_0039.jpg','2015-11-02',0,'Pro MF840CH/A 13.3英寸宽屏笔记本电脑 256GB 闪存',0,'2'),('4','联想 P1',2199,1999,'products/1/c_0004.jpg','2015-11-02',0,'联想 P1 16G 伯爵金 移动联通4G手机充电5分钟,通话3小时!科技源于超越!品质源于沉淀!5000mAh大电池!高端商务佳配!',0,'1'),('40','机械革命(MECHREVO)MR X6S-M',6799,6599,'products/1/c_0040.jpg','2015-11-02',0,'15.6英寸游戏本(I7-4710MQ 8G 64GSSD+1T GTX960M 2G独显 IPS屏 WIN7)黑色',0,'2'),('41','神舟(HASEE) 战神K660D-i7D2',5699,5499,'products/1/c_0041.jpg','2015-11-02',0,'15.6英寸游戏本(i7-4710MQ 8G 1TB GTX960M 2G独显 1080P)黑色',0,'2'),('42','微星(MSI)GE62 2QC-264XCN',6199,5999,'products/1/c_0042.jpg','2015-11-02',0,'15.6英寸游戏笔记本电脑(i5-4210H 8G 1T GTX960MG DDR5 2G 背光键盘)黑色',0,'2'),('43','雷神(ThundeRobot)G150S',5699,5499,'products/1/c_0043.jpg','2015-11-02',0,'15.6英寸游戏本 ( i7-4710MQ 4G 500G GTX950M 2G独显 包无亮点全高清屏) 金',0,'2'),('44','惠普(HP)轻薄系列 HP',3199,3099,'products/1/c_0044.jpg','2015-11-02',0,'15-r239TX 15.6英寸笔记本电脑(i5-5200U 4G 500G GT820M 2G独显 win8.1)金属灰',0,'2'),('45','未来人类(Terrans Force)T5',10999,9899,'products/1/c_0045.jpg','2015-11-02',0,'15.6英寸游戏本(i7-5700HQ 16G 120G固态+1TB GTX970M 3G GDDR5独显)黑',0,'2'),('46','戴尔(DELL)Vostro 3800-R6308 台式电脑',3299,3199,'products/1/c_0046.jpg','2015-11-02',0,'(i3-4170 4G 500G DVD 三年上门服务 Win7)黑',0,'2'),('47','联想(Lenovo)H3050 台式电脑',5099,4899,'products/1/c_0047.jpg','2015-11-11',0,'(i5-4460 4G 500G GT720 1G独显 DVD 千兆网卡 Win10)23英寸',0,'2'),('48','Apple iPad mini 2 ME279CH/A',2088,1888,'products/1/c_0048.jpg','2015-11-02',0,'(配备 Retina 显示屏 7.9英寸 16G WLAN 机型 银色)',0,'2'),('49','小米(MI)7.9英寸平板',1399,1299,'products/1/c_0049.jpg','2015-11-02',0,'WIFI 64GB(NVIDIA Tegra K1 2.2GHz 2G 64G 2048*1536视网膜屏 800W)白色',0,'2'),('5','摩托罗拉 moto x(x+1)',1799,1699,'products/1/c_0005.jpg','2015-11-01',0,'摩托罗拉 moto x(x+1)(XT1085) 32GB 天然竹 全网通4G手机11月11天!MOTO X震撼特惠来袭!1699元!带你玩转黑科技!天然材质,原生流畅系统!',0,'1'),('50','Apple iPad Air 2 MGLW2CH/A',2399,2299,'products/1/c_0050.jpg','2015-11-12',0,'(9.7英寸 16G WLAN 机型 银色)',0,'2'),('6','魅族 MX5 16GB 银黑色',1899,1799,'products/1/c_0006.jpg','2015-11-02',0,'魅族 MX5 16GB 银黑色 移动联通双4G手机 双卡双待送原厂钢化膜+保护壳+耳机!5.5英寸大屏幕,3G运行内存,2070万+500万像素摄像头!长期省才是真的省!',0,'1'),('7','三星 Galaxy On7',1499,1398,'products/1/c_0007.jpg','2015-11-14',0,'三星 Galaxy On7(G6000)昂小七 金色 全网通4G手机 双卡双待新品火爆抢购中!京东尊享千元良机!5.5英寸高清大屏!1300+500W像素!评价赢30元话费券!',0,'1'),('8','NUU NU5',1288,1190,'products/1/c_0008.jpg','2015-11-02',0,'NUU NU5 16GB 移动联通双4G智能手机 双卡双待 晒单有礼 晨光金香港品牌 2.5D弧度前后钢化玻璃 随机附赠手机套+钢化贴膜 晒单送移动电源+蓝牙耳机',0,'1'),('9','乐视(Letv)乐1pro(X800)',2399,2299,'products/1/c_0009.jpg','2015-11-02',0,'乐视(Letv)乐1pro(X800)64GB 金色 移动联通4G手机 双卡双待乐视生态UI+5.5英寸2K屏+高通8核处理器+4GB运行内存+64GB存储+1300万摄像头!',0,'1');javabean product
ProductService ProductDao
///

案例3-查询单个商品的详情
步骤分析:
在首页上 点击每个商品
….
编写 getById方法
获取点击商品的pid
调用service查找商品 返回值 :Product
将product放入request域中,请求转发 product_info.jsp

//

案例4-分页展示商品
按类别 分页展示
步骤分析:
在菜单上 点击一个分类 head.jsp

findByPage操作:
1.接受 cid currPage 设定一个每页显示的条数 pageSize
2.调用productSerivce 返回一个PageBean
pageBean中
list currPage pageSize totalPage totalCount
3.将pagebean放入request域中,请求转发
在productSerivce需要封装成pagebean

    在product_list.jsp展示数据

///
扩展:浏览记录
技术分析:cookie
步骤分析:
进入一个商品详情页面的时候需要记录当前的商品id

我们需要在 getById这个方法中处理cookie
规定 cookie的名称:ids value: 2-1-3
1.获取指定的cookie
CookieUtils.getCookieByName()
里面的实现:
通过request.getCookies()先获取cookie数组,然后遍历cookie,通过cookie的名称判断
if(“ids”.equals(cookie.getName)){return cookie;}
2.判断cookie是否为空
若不为空:获取value值
继续判断value值中有无该商品的id(将字符串切割转成list)
若有:
先移除,然后将商品id放入list的最前面
若没有:
继续判断list的长度是否>=3
若>=3:移除最后一个,将当前商品的id放入list的最前面
若<=:将当前商品的id放入list的最前面
最后将list变成字符串即可
若为空:
将当前商品的id放入ids中即可

        Cookie c=new Cookie("ids",ids);c.setMaxAge(int 秒);c.setPath(request.getContextPath+"/");response.addCookie(c);在product_list.jsp需要将cookie里面的商品展示出来1.需要在jsp中获取指定cookie2.判断cookie是否为空若不为空:获取value 例如:value=1-3-2切割字符串获取每一个商品的id通过id去数据库中查找,获取商品的所有信息

//

【javaWeb】第50天—— WEB实战项目二相关推荐

  1. 【机器学习】KNN算法实战项目二:水果分类

    KNN算法实战项目二:水果分类 2 KNN实现水果分类 2.1 模块导入与数据加载 2.2 数据EDA 2.3 模型创建与应用 2.4 绘制决策边界 手动反爬虫: 原博地址 https://blog. ...

  2. Flutter Web实战项目打造真正跨平台应用(windows,android,ios,linux,macos,web)

    Flutter Web项目 Flutter 最近发布了 Flutter V2.5.1,其性能得到了很大提升,支持 Web.macOS.Android 和 iOS. 这就是为什么今天我们使用在 Web. ...

  3. 电商移动Web实战项目(1)

    移动web基础 移动端开发现状 移动web开发指的是需要适配移动设备的网页开发 移动web开发与pc端web开发没有本质的区别,使用的还是HTML/CSS/JavaScript的技术 移动web开发与 ...

  4. Java实战项目二(超详细)---奔跑吧小恐龙

    奔跑吧小恐龙是一款简单的跑酷游戏(代码简单,适合初学者学习).玩家控制小恐龙向前狂奔,躲避沿途出现的石头和仙人掌,跑的越远,分数越高.游戏内还增加了背景音乐.跳跃音乐和碰撞音乐. 本文的代码虽然长,但 ...

  5. 电商移动Web实战项目(5)

    响应式 什么是响应式布局 响应式布局(respond layout)是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端(手机.平板.pc电脑.手表, ...

  6. 实战项目二:实现CSDN自动点赞

    环境: Python3.6.5 编译器: Sublime Text 3 代码: GitHub 联系方式: ke.zb@qq.com 第三方库: selenium 写在前面:本文仅供参考学习,请勿用作它 ...

  7. 02- 天池工业蒸汽量项目实战 (项目二) *

    忽略警告: warnings.filterwarnings("ignore") import warnings warnings.filterwarnings("igno ...

  8. Halcon实战 项目二 Bolb实战分析-提取图片中的硬币

    ○读取图像 Halcon读取图像有三种方式:a文件->读取图像:b通过助手(连接相机,声称读取图像代码):c代码输入. 本案例使用链接相机读取图像. ○链接相机-生成代码选择采集gray灰度图像 ...

  9. 3.2 实战项目二(手工分析错误、错误标签及其修正、快速地构建一个简单的系统(快速原型模型)、训练集与验证集-来源不一致的情况(异源问题)、迁移学习、多任务学习、端到端学习)

    手工分析错误 手工分析错误的大多数是什么 猫猫识别,准确率90%,想提升,就继续猛加材料,猛调优?     --应该先做错误分析,再调优! 把识别出错的100张拿出来, 如果发现50%是"把 ...

最新文章

  1. ActiveMQ — 集群 — 安装与配置
  2. 获取mysql可行方法_Mysql学习Java实现获得MySQL数据库中所有表的记录总数可行方法...
  3. v8学习笔记(五) 编译过程
  4. (原创)浅谈BUG资产,用例资产的作用
  5. Java中的13个原子操作类介绍
  6. javascript基础修炼(13)——记一道有趣的JS脑洞练习题
  7. 如何创建一个最小的串口、TTY设备包括虚拟控制台,串口以及伪终端设备的驱动程序
  8. kafka的消费顺序_Kafka原理和实践云平台技术栈13
  9. CNware存储管理功能介绍
  10. python-jieba库
  11. 数字化转型投入大、效果差,永洪BI如何帮助企业迈出数据应用第一步
  12. 计算机二级vbf资源百度云,2018年计算机二级考试考前冲刺卷
  13. 这可能是你能找到最全面的数据预处理介绍
  14. php.ini reporting,php.ini中error_reporting参数配置
  15. openjdk windows版本下载地址
  16. imac 2017升级内存
  17. 如何快速将一张彩色图片变成黑白图片
  18. 完美解决 w10 设置 个性化 wifi 无法打开的问题
  19. CKA考试总结 20221003
  20. android 不卡 华为,荣耀Magic是什么系统 华为荣耀Magic手机是不是也不卡?

热门文章

  1. Win10无法登录微软账号错误代码0x80190001的解决方法
  2. 微软批量许可服务中心注册指南
  3. “颜值不凡•智在其中” 原来你是这样的荣耀10
  4. SQL语法——LIKE
  5. 2011的n次方的后四位
  6. Linux实验 输出6之内的数字金字塔
  7. Ps4手柄隐藏无法识别,PS4手柄没反应
  8. Python实现微信自动化发送信息
  9. Robo3T中批量操作数据
  10. CRT远程连接出现中文乱码