
Java Web
文章平均质量分 92
VicterTian
这个作者很懒,什么都没留下…
展开
-
图书商城【7】
今天来写Order模块,这个模块可以说是最复杂模块了,因为它和前面所有模块都有很大的关联,所以务必将这一块拿下,我们先进入到showCart页面,点击结算生成订单时,网页会跳转到order.jsp页面,在页面展示我们订单中的信息。当我们点击生成订单时,order.jsp页面会向${pageContext.request.contextPath}/order提交, 表单中有一个隐藏域 然后我原创 2018-01-30 23:01:36 · 716 阅读 · 0 评论 -
布隆过滤器
在使用redis的过程中,有两个问题是无法避免的:缓存雪崩和缓存穿透。下文将简要讲解讲解缓存穿透的布隆过滤器什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,...转载 2019-09-23 18:18:57 · 320 阅读 · 0 评论 -
mybatis中${}、 #{}区别及应用场景
mybatis中${}、 #{}区别及应用场景动态sql是mybatis的主要特性之一。在mapper中定义的参数传到xml中之后,在查询之前mybatis会对其进行动态解析。mybatis提供了两种支持动态sql的语法:#{} 、${}。select * from t_user where username = '${username}';select * from t_user whe...原创 2019-09-23 17:25:27 · 1363 阅读 · 1 评论 -
redirect和forward的区别
一、调用方式在servlet中,当我们处理doPost()和doGet()方法时调用转发、重定向的语句如下:request.getRequestDispatcher("user.jsp").forward(req, resp); //转发response.sendRedirect("user.jsp"); //重定向二、本质区别转发是服务器行为,重定向是客户端行为:redirect是url重定向,...转载 2018-02-07 22:33:58 · 587 阅读 · 0 评论 -
session的removeAttribute()和invalidate()的区别
session.removeAttribute()适用于清空指定的属性 session.invalidate()是清除当前session的所有相关信息removeAttribute就是从session删除指定名称的绑定对象,也就是说调用此方法后再调用getAttribute(String name)时,不能获取指定名称的绑定对象,但是session还存在。invalidate就是销毁此sessio...转载 2018-02-07 22:33:32 · 500 阅读 · 0 评论 -
Java反射机制详解 及 Method.invoke解释
JAVA反射机制JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对转载 2018-02-07 21:51:05 · 297 阅读 · 0 评论 -
图书商城【6】
继续写我们的项目,上一篇博客已经实现了对product的基本操作,这篇博客我们写一下购物车模块,在showCart中,写了对商品数量操作和删除的js代码。当点击+ -按钮时会调用函数changeCount(商品的id,商品修改数量,商品的库存)onclick="changeCount('${entry.key.id }','${entry.value-1}','${entry.key.pnum}'原创 2018-01-29 22:18:29 · 686 阅读 · 0 评论 -
图书商城【5】
接下来我们开始写Product部分,还是和User部分一样,先写domain里的Product类,需要注意的是因为以后要根据id对product进行操作,所以我们重写的hashcode和equals方法只要选上id属性即可。考虑到添加product时会有不同大小的图片,所以我们工具类里有一个统一图片大小的工具类,我们还要写一下这个方法。package cn.itcast.estore.do原创 2018-01-29 18:28:26 · 477 阅读 · 0 评论 -
图书商城【4】
我们先写网站的注册登录这一块功能,首先在domain包里先写User类,关于domain包给大家解释一下,在mvc结构里,domain是主控制层,对应数据库实体setter,getter和toString方法,为dao层做好准备。那么dao层又是干嘛的呢?dao层主要就是数据访问层,也就是操作表单,对数据进行访问,这里不会涉及复杂逻辑,主要就是对表的增删查改,完全根据domain的要求来查找数据,原创 2018-01-29 10:54:15 · 664 阅读 · 0 评论 -
图书商城【2】
做项目之前我们首先要有需求,然后根据需求文档并用软件工程师的语言描述出来,进行清晰的架构,这些东西初学者并没有太多的经验去谈,这些我们先统统略去详细,只是先讲一下大概首先进行功能分析,功能分析如下:1、用户注册2、用户登录3、添加商品(CURD)4、商品查看-- 列表查询5、商品详情页面6、将商品添加购物车7、查看购物车8、修原创 2018-01-27 22:17:57 · 583 阅读 · 0 评论 -
图书商城【1】
最近几天开始写自己的第一个web项目,虽然是模仿着黑马的案例写,不过还是总结了很多,最近几个月学到的东西总算可以在实战项目中用得上了,下面就分享一下自己做这个项目时候的过程与经验。 首先声明一下,本人还是很弱的水平。正在努力的摸索以后的学习路径,还没有完整的接触过设计模式,以及更加深入的东西,写这个项目就是为了逼自己一把,所以里面会有很多问题,还希望各位大佬多多发言,帮我纠正一下里面的各种弱智原创 2018-01-27 21:57:43 · 622 阅读 · 0 评论 -
图书商城【3】
建议大家做这个项目之前,先看一下项目的演示,将功能及逻辑理清楚。因为已经有了清晰的逻辑结构,我们首先来设计数据库,在设计数据库时,我们先讲出都需要哪些表。然后再细讲每一张表里的列名都需要哪些。首先作为一个较为完整的商城项目,产品表(products)是必不可少是,我们要购物,就必须要有用户表(users),当我们购物时,订单(orders)功能就必不可少,当处理订单时,我们还需要处原创 2018-01-27 23:19:26 · 548 阅读 · 0 评论 -
图书商城【8】
今天我们将这个项目完成,首先写订单支付功能,我们这个项目用的是易宝支付的接口,所以需要查看易宝的帮助文档,这是在线支付资料的下载链接里面,大家可以下载试用一下,当然,代码的代码也是可以直接使用的。OnlinePay模块下载链接:首先我们根据接口的帮助文档,先将pay.jsp按要求写好,然后我们开始写OnlinePayServlet:package cn.itcast.estore.web;原创 2018-01-31 18:40:22 · 473 阅读 · 0 评论 -
缓存与数据库双写一致问题
缓存与数据库双写一致问题在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(...转载 2019-09-23 19:05:40 · 791 阅读 · 0 评论