黑马程序员WEB14-JDBC案例篇笔记 下载本文

第14章WEB14-JDBC案例篇

1.1 完成对商品的CRUD的操作,进行条件查询,分页查询.

1.1.1 需求:

购物的网站中需要显示商品的信息,在商品信息的显示中,如果商品的信息比较多.需要将比较多的商品进行分页的显示.进行条件查询.同时对商品进行修改,插入,删除.

1.1.2 分析: 1.1.2.1 技术分析:

使用MVC设计模式JSP + Servlet + JavaBean + JDBC实现商品信息的CRUD的操作.

1.1.2.2 步骤分析:

【步骤一】:创建数据库和表

* create database web_14; * use web_14;

* create table `product` ( );

`pid` varchar (96), `pname` varchar (150), `market_price` double , `shop_price` double , `pimage` varchar (600), `pdate` date , `is_hot` double , `pdesc` varchar (765), `pflag` double , `cid` varchar (96)

【步骤二】:创建工程导入jar包.

* msysql驱动 * c3p0的包 * dbutils的包

* beanUtils的包:两个. * JSTL的包:两个

【步骤三】:创建包结构.

【步骤四】:创建一个首页:

欢迎来到商品信息管理平台

1.1.3 代码实现:

1.1.3.1 商品的查询的功能:

在首页上点击【查询所有商品】链接: 提交到Servlet中:

* 调用业务层-->调用DAO: * 将商品列表保存到request域中: * 转发到商品列表页面: 在商品列表的页面中显示商品:

1.1.3.2 商品的添加的功能:

在首页点击【添加】链接:跳转到添加页面.

在添加页面中输入信息:点击【提交】提交到Servlet 在Servlet中: * 接收数据: * 封装数据: * 调用业务层: * 页面跳转

* 重复提交的问题:

* 添加完商品之后,转发到一个页面,刷新该页面.

* 网速很慢,点击提交的按钮,其实已经在提交了但是网速慢,不停的点击提交. * 解决重复提交的根本解决办法:令牌机制(一次性). * 生成随机的令牌保存在session中.

* 在表单的提交的时候,将随机的令牌放入到表单的隐藏字段中. * 在Servlet中获得session中和表单中的令牌是否一致. * 如果一致执行插入操作,不一致跳转到其他页面.将令牌销毁. * 代码实现:

// 判断是否是重复提交:

String token1 = (String)request.getSession().getAttribute(\String token2 = request.getParameter(\// 清空session中的令牌:

request.getSession().removeAttribute(\if(!token2.equals(token1)){

request.setAttribute(\亲!您已经提交过!请不要重复提交了!\request.getRequestDispatcher(\