JSP模式二编程_第1页
JSP模式二编程_第2页
JSP模式二编程_第3页
JSP模式二编程_第4页
JSP模式二编程_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课外实验二JSP模式二编程(实验报告格式二)实验总题目:JSP模式二编程实验子题目:前台商品展示表:可选子题目列表 (本列表不需出现在实验报告中)编号子题目文件位置要求1创建数据库并建立数据库连接com.jk13.db1. 在MySql建立数据库,为各表输入记录,导出为sql 文件作为资料。将sql自包含文件发给其他同学。2. 采用c3p0连接池,建立连接类DbConn,使能够从该类的getConnection方法取得一个数据库连接。21)使用过滤器处理中文乱码2)后台操作主界面com.jk13.filter1. 参考第7章,设置过滤器处理中文乱码2分析需求文件,确定后台工作所有功能,建立后台界面采用HTML框架或div实现,文件为bkmain.jsp31) 注册2) 登录3) 退出程序Webrootbkreglogcom.jk12.bean 1. 客户表添加级别和密码字段。2. 实现注册程序,将jsp提交的注册信息存入数据库。注册页面要作输入校验。3. 实现登录程序,登录后,将登录用户信息存入User实例(在bean包),在session存放user对象User(name,role)。转向bkmain.jsp页面。4. 用户退出后,清除session中user对象。清除页面缓存。41) 后台图书入库2) 出库程序Webrootbkbookmanagecom.jk12.bean1 添加一表:商品库存(商品编号,出入库,数量,入货单价,经手人,日期,商品库存)其中库存为计算字段。2 创建图书入库程序,输入信息后添加到数据库;输入出错可对入库信息修改。3 模拟扫条形码出库,输入订单号,按出库按钮,将订单内图书在库存减去。将订单状态改为已发货。51)后台打折处理。2)后台促销程序bkdiscountbknew1. 设置部分图书打折,特定日子打折。发布打折通告。2. 添加、修改、删除新书通告。61) 前台商品展示程序2) 前台商品详情程序frcounter商品展示包括1. 图书售价定为入货价的2倍。2. 新书上架信息展示,3. 打折信息展示,4. 图书分类展示,图书查询及列表。5. 点击图书列出图书详情。建立加入购物车按钮。71) 前台注册2) 登录3) 退出程序frreglog1. 注册页面需要进行输入校验。2. 登录后,在session设置user(name,role)3. 用户退出,清除session中的user81)前台购物车程序frcart1. 为订单表添加订单状态字段2. 从商品详情页面添加图书到购物车,购物车页面列出,修改,删除商品。将购物车内信息保存到sesssion。参考P83。3. 登录用户,将购物车信息保存到数据库。4. 加入结账提交按钮91) 前台结账2) 已购商品状态程序frbuy1. 从结账提交信息,生成订单,保存到数据库。2. 提供付款链接,付款后订单状态为已付款3. 订单查询及投诉链接。10前台用户信息管理程序Fruser1. 在页面顶端加入用户信息相看连接2. 用框架形式,实现用户信息查看、修改。订单信息查看投诉信息及反馈信息查看个人积分查看121)前台商品评价2)投诉程序frscorefrcomplian1. 用户收到商品进行评价2. 发起投诉。133.实验包位置:com.jk13,在其下按自定包名创建类。实验文件存储结构:对应数据库表的实体类访问bean类实例表记录增、删、改、查操作类连接数据库类业务处理类,调用dao类实现具体业务,如图书馆系统中的借还书实验数据库设计:数据库:dbchap5客户表:t_customer商品分类表:t_goodscate商品表:t_items订单表:t_orders连接表:t_seleItems 订单详情节订单中包含的商品是由连接表记录的。数据库设计的原则:使用中只增加记录,不增加字段。结构固定。表列数不要太多。以上表结构是一个简例,实用中,订单详情还包括商品数量。订单表还应该加上日期。实验程序设计:Index.jsp iindex前台商品展示Goods.jspcate.jspDbchap5数据库goodsServiceC3p0连接池dbpoolgoodsDAO,catesDao1、 使用JNDI和C3P0,定义为应用局部连接池例子如下:(1) 将mysql驱动包导入到项目文件夹新建web项目:file-new-web project,命名lab1选定项目lab1,右击,Build Path -Configure Build PathAdd external jars选择mysql-connector-java-5.1.26-bin.jar包,确定(2) 将C3P0包导入到项目路径中。C3P0包位于:SSH机房安装文件 hibernate-distribution-3.6.10.Finalliboptionalc3p0文件夹。文件名为:c3p0-0.9.1.jar(3) 建立context.xml文件在项目文件夹WEBROOT META-INF文件夹下新建context.xml文件。操作:选定META-INF,右击,new-other ,在打开的new窗展开MyEclipse,展开XML,选择XML(Basic template),输入文件名context.xml打开context.xml,添加如下内容:!- add mysql-connector-java-5.1.26-bin.jar,c3p0-0.9.1.jar to projects lib (4) 编辑web.xml文件打开项目WEBROOTWEB-INFweb.xml,添加如下内容, DB Connection jdbc/db javax.sql.DataSource Container 添加位置在之前。2、 新建数据库连接类 com.db. DbPool代码如下:package com.db;import java.sql.Connection;import java.sql.SQLException;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;import com.mchange.v2.c3p0.DataSources;/* c3p0连接池 DbPool * 使用配置文件 src/c3p0_config.xml */public class DbPool DataSource ds=null; public DbPool() throws Exception public Connection getConn() Connection conn=null; try InitialContext ctx = new InitialContext(); / 构造一个初始Context ds = (DataSource) ctx.lookup(java:comp/env/jdbc/db); /JNDI查找应用程序环境内名为 jdbc/db 名称的数据源,返回 给ds conn=ds.getConnection(); catch(NamingException ex) ex.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); return conn; /无 catch (SQLException e) 将引发取不到连接。初始Context存在,不重新构造 。 protected void finalize() throws Throwable DataSources.destroy(this.ds); /关闭datasource super.finalize(); 3、 在访问数据库的DAO类调用连接/查询数据库中某个商品主类的所有商品public class goodsDao /* 从数据库连接对象DbPool取得一个数据库连接对象 */Connection getConnection() throws ExceptionConnection conn=null;DbPool db =new DbPool();conn=db.getConnection();return conn;/* 查询符合条件的多个记录 */public List getParentGoods(String parentno) throws ExceptionList ls=new ArrayList(); Connection conn=getConnection(); String sql=Select * from t_items as a inner join t_goodscate as b on a.cate_id=b.cate_no where b.parent_no=?; PreparedStatement ps; int parentid=Integer.parseInt(parentno); try ps = conn.prepareStatement(sql);ps.setInt(1, parentid);ResultSet rs=ps.executeQuery(); while(rs.next()GoodsBean goods=new GoodsBean();goods.setId(rs.getInt(1);goods.setCateid(rs.getString(2);goods.setItemno(rs.getString(3);goods.setItemname(rs.getString(4);ls.add(goods); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); conn.close(); return ls;4、 Bean类(VO类)GoodsBeanpublic class GoodsBean private int id;private String cateid;private String itemno;private String itemname;/省略setter&getter5、 业务类,数据展示页面调用的GoodsServicepublic class GoodsService public List getCateName() throws Exception cateDao cado=new cateDao(); List ls=cado.getParentList(); return ls; public List getGoodsList(String parentid) throws Throwable goodsDao gdao=new goodsDao(); List ls=gdao.getParentGoods(parentid); return ls; 6、 JSP页面(1)展示商品页面:Webroot goods.jsp商品列表% String ctype=request.getParameter(cate); GoodsService goodsservice=new GoodsService(); List ls=goodsservice.getGoodsList(ctype); Iterator it=ls.iterator(); GoodsBean goods=new GoodsBean(); String goodsurl,url1=:8080/chap5_3/goodsdetail.jsp?id=; int i=0; String goodsno=; while(it.hasNext() goods=(GoodsBean)it.next(); goodsno=goods.getItemno(); goodsurl=url1+goodsno; % A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论