JavaWeb书城项目总结
JavaWeb书城项目总结
知识点
学习内容:
1、显示主页面:
新建BookDAO 、 BookDAOImpl : getBookList()
新建BookService 、 BookServiceImpl : getBookList()
新建BookController : index()
编辑index.html
2、加商品到购物车,显示购物车中的购物项
首先要拿到用户的购物车才能方便判断
由上到下逐步细化;controller->service->DAO
加入购物项时要考虑原来购物车中有没有购物项,分两种情况加
3、购物车的详情页面
要加载用户的购物车信息,之前的getCart(User user)中的购物车项只有bookId,其他未赋值
通过getCartItemList(User user)对购物车项中的CartItem进行赋值才能够得到用户真正的购物车信息
4、结账:
1、订单表添加相关记录
2、订单详情表中添加购物车项的记录
3、购物车项表中删除对应的购物车项记录
5、订单页面的显示
orderListController->getOrderList Service DAO
thymeleaf的代码片段拷贝使代码重复使用
6、购物车编辑
7、精度问题(BigDecimal)
现象运算后的结果有很多小数
那为什么会出现这种情况呢?
因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。
注:根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值
CratItem类中的方法:
public Double getXj() {
BigDecimal bigDecimalPrice = new BigDecimal(getBook().getPrice()+"");
一般不建议使用new BigDecimal(Double)的形式,建议把Double转成字符串的形式
BigDecimal bigDecimalBuyCount = new BigDecimal(buyCount+"");
BigDecimal bigDecimalXj = bigDecimalPrice.multiply(bigDecimalBuyCount);
xj=bigDecimalXj.doubleValue();
return xj;
}
8、过滤器判断是否为合法用户(SessionFilter中还有很多不明白的知识)
9、验证码
1) 添加jar
2) 在web.xml文件中配置KaptchaServlet,以及配置相关的属性
3) 在页面上访问这个Servlet,然后这个Servlet做两件事情:
- 在页面上显示验证码图片
- 在session作用域中保存验证码信息,对应的key存储在Constans这个常量接口中
4) 用户在注册页面中输入验证码发送给服务器,那么需要和session中保存的进行比较
out.println("<script language='javascript'>alert('验证码不正确!!');window.location.href='page.do?operate=page&page=user/regist'<script>");
return null;
打印语与跳转语句只能二选一,否则打印失效
10、正则表达式:
三步骤:定义正则表达式、定义待检验的字符串、检验
1. 定义正则表达式对象
正则表达式定义有两个方式:
1) 对象形式
var reg = new RegExp("abc")
2) 直接量形式
var reg = /abc/;
3) 匹配模式:
- g 全局匹配
- i 忽略大小写匹配
- m 多行匹配
- gim这三个可以组合使用,不区分先后顺序
例如: var reg = /abc/gim , var reg = new RegExp("abc","gim");
2. 定义待校验的字符串
3. 校验
2)元字符
. , \w , \W , \s , \S , \d , \D , \b , ^ , $
4. 3)[]表示集合
[abc] 表示 a或者b或者c
[^abc] 表示取反,只要不是a不是b不是c就匹配
[a-c] 表示a到c这个范围匹配
4) 出现的次数
* 表示多次 (0 ~ n )
+ 至少一次 ( >=1 )
? 最多一次 (0 ~ 1)
{n} 出现n次
{n,} 出现n次或者多次
{n,m} 出现n到m次
11、注册页面的表单验证:
1. 注册页面表单验证
1)

浙公网安备 33010602011771号