当前位置:文档之家› JSP动态网站课程设计 报告书

JSP动态网站课程设计 报告书

《JSP动态网站程序设计》课程设计说明书题目:笔记本网络购物系统学院:计算机与信息工程学院专业:计算机科学与技术班级:姓名:学号:起止时间:2011.6.27--2011.7.7成绩:课程设计任务书一、设计题目:《笔记本网络购物系统》二、设计内容:一个使用jsp与MVC模式开发的具有前台和后台的电脑购物系统,具有良好的用户交互页面,前端页面加入了Ajax技术,实现了无刷新删除订单信息功能,用户通过本系统可以方便的实现用户注册和登录以及一体化下单功能,具有方便,快捷等优点。

三、设计要求:1.前台页面上具有用户注册,登录,和显示品牌信息,显示推荐商品等功能。

2.用户可以在首页浏览到最近精品推荐的电脑产品,可以查询商品信息,并且实现购买。

3.用户登录后可以方便的将自己中意的商品添加至购物车,在购物车中可以方便的管理已购商品,用户可以在订单管理页面方便的对订单进行删除。

四、工作计划:指导教师:__教研室主任:文东戈2011 年6月27 日本科课程设计说明书摘要此系统采用当今流行的SSH2进行开发,页面使用了当今最流行的Ajax框架jQuery,具有良好的用户体验,在开发中使用软件工程的思想对系统和业务流程进行了详尽的分析,基本满足Jsp开发步骤,能够完成课程设计的主要任务,系统的订单信息页面能够实现对订单信息的无刷新删除,后台模板简洁漂亮,可以方便的对电脑及其品牌信息进行增删查改。

因网络上关于购物系统页面模板奇缺,为保持系统美观,所以可能会有页面雷同情况发生,本人能够保证代码的唯一性,系统逻辑实现的唯一性。

关键词:Java 购物系统JSP本科课程设计说明书目录课程设计任务书....................................................................................................................... I I 摘要...................................................................................................................................... I II 目录.. (IV)一、设计内容 (1)二、设计过程 (1)2.1需求分析 (1)2.2概要设计 (2)2.3详细设计 (3)2.4代码实现...................................................................................... 错误!未定义书签。

2.5程序运行与发布 (3)三、总结 (13)四、参考文献 (15)本科课程设计说明书一、设计内容一个电脑销售系统,采用SSH2框架体系开发,少数页面具有无刷新功能,通过本系统,用户可以方便的注册登录,浏览电脑信息,电脑品牌信息,订单信息等,实现商品购买简单方便。

二、设计过程2.1需求分析1、用户注册与登录功能用户应该在系统首页实现,注册与登录功能,在用户注册时系统应该给予适当的提示,杜绝非法信息进入系统数据库2、电脑信息的查询功能用户应当可以在系统中方便的查找到自己喜欢的商品3、购买电脑功能当用户确定要买的电脑后,系统应当将此商品加入到购物车,此时不应当立即进行商品的购买与结算,所以用户应当能够在购物车中进行反悔,可将自己不想买的商品取出购物车,购物车中应当可以由用户自己选择购买的电脑数量,然后将电脑加入到订单流程,进行下单后的最后结算,并将商品信息加入到订单列表,然后进行商品的配货4、后台管理功能管理员同志可以在后台对当前电脑信息做一次遍历,然后具有选择性的从数据库中删除该种电脑信息,或者对一些电脑信息进行更新,管理员也可以将新入库的商品加入到数据库中,方便所有注册用户进行购买。

本科课程设计说明书操作流程图如图2.1所示:图2.1操作流程图2.2概要设计本购物系统程序共有50个java源文件,主要类文件的实现功能如下:AjaxAction.java实现前端页面的一些无刷新功能OrdersAction.java 实现用户与管理员对订单的一些操作功能ProductAction.java实现用户与管理员对商品的增删改查的操作SortAction.java 使管理员可以操作电脑的品牌分类信息UserAction.java实现用户的一些功能,例如注册与登录操作本程序的数据库连接交由Spring容器进行管理,配置文件名applicationContext.xml本科课程设计说明书数据库的表与表间关系图图如2.2所示图:2.2 表与表间关系图2.3详细设计数据库中的每个表结构及字段具体含义如图2.3所示。

本科课程设计说明书图 2.3表的详细设计层与层之间的调用关系如图2.4所示图2.4 层与层之间的调用关系2.4代码实现// 购物车付款public List<Product> basketpay(List<Product> all, String[] buyNums) {// TODO Auto-generated method stubif (all == null) {all = new ArrayList<Product>();} else {本科课程设计说明书for (int i = 0; i < buyNums.length; i++) {String buyNumber = buyNums[i];Product pro = all.get(i);pro.setSellnum(Integer.parseInt(buyNumber));all.set(i, pro);}}return all;}// 计算用户购物总价格public Double basketrealpay(List<Product> all) {// TODO Auto-generated method stubif (all == null) {all = new ArrayList<Product>();}Double sum = 0.0;for (int i = 0; i < all.size(); i++) {sum = sum + (all.get(i).getSellnum() *all.get(i).getHprice());}return sum;}// 购物车逻辑public List<Product> listbasket(int pid, List<Product> all) { if (all == null) {all = new ArrayList<Product>();all.add(productdao.querybyid(pid));} else {boolean flag = true;for (int i = 0; i < all.size(); i++) {if (all.get(i).getPid() == pid) {flag = false;break;}}if (flag) {all.add(productdao.querybyid(pid));}}return all;}本科课程设计说明书public List<Product> listproductbylike(String pname) {// TODO Auto-generated method stubList<Product> productlist = productdao.querybylike(pname);return productlist;}public Product productdetail(int pid) {// TODO Auto-generated method stubProduct p = productdao.querybyid(pid);return p;}// 有部推荐public List<Product> rankproduct() {// TODO Auto-generated method stubList<Product> list = productdao.rankproduct();return list;}public void addSort(Sort sortvo) {// TODO Auto-generated method stubsort.setSortname(sortvo.getSortname());sortdao.add(sort);}public void deleteSort(int sid) {sortdao.delete(sid);}public Sort getSort() {return sort;}public SortDao getSortdao() {return sortdao;}public List<Sort> listSort() {// TODO Auto-generated method stubreturn sortdao.queryall();}本科课程设计说明书public Set<Product> listSortProduct(int id) {// TODO Auto-generated method stubSort sort = sortdao.queryid(id);Set<Product> s = sort.getProducts();return s;}public Sort querybyid(int sid) {return sortdao.queryid(sid);}// 用户订货操作public Orders addOrders(Orders order, User user, Double totalmoney, List<Product> all) {// TODO Auto-generated method stub// System.out.println("你叫啥:"+user.getName());System.out.println(all);order.setUser(user);order.setTotalmoney(totalmoney);order.setOrderdate(new Date());ordersdao.add(order);for (int i = 0; i < all.size(); i++) {getOp().setSellnum(all.get(i).getSellnum());getOp().setProductid(all.get(i));getOp().setOrderid(order);orderproductdao.add(getOp());pro = productdao.querybyid(all.get(i).getPid());all.get(i).setTotal(pro.getTotal() -all.get(i).getSellnum());all.get(i).setSellnum(pro.getSellnum() +all.get(i).getSellnum());productdao.update(all.get(i));}return order;}// 订单删除方法public Set<Orders> deleteOrders(String oid, String uid) { orders = ordersdao.querybyid(oid);oplist = orderproductdao.querybyid(orders);本科课程设计说明书for (int i = 0; i < oplist.size(); i++) {int opsellnum = oplist.get(i).getSellnum();int prosellnum = oplist.get(i).getProductid().getSellnum();int prototal = oplist.get(i).getProductid().getTotal();oplist.get(i).getProductid().setSellnum(prosellnum - opsellnum);oplist.get(i).getProductid().setTotal(prototal + opsellnum);productdao.update(oplist.get(i).getProductid());// 更新product表相关信息orderproductdao.delete(oplist.get(i));}ordersdao.delete(orders);Set<Orders> listOrders = userdao.querybyid(uid).getOrder();return listOrders;}// 用户订单显示public Set<Orders> listOrders(String uid, Map<String, Object> session) {// TODO Auto-generated method stubif (uid == null || "".equals(uid)) {User user = (User) session.get("user");uid = user.getId();}// System.out.println(uid);Set<Orders> ordersList = userdao.querybyid(uid).getOrder();return ordersList;}public void update(Orders order) {System.out.println("更新方法执行");System.out.println("orders中realname值为:" +order.getRealname());System.out.println("orders中address值为:"+ order.getAddress());Orders orders = ordersdao.querybyid(order.getOrderid());if(order.getRealname() == null|| "".equals(order.getRealname())) {System.out.println("realname为空");orders.setAddress(order.getAddress());}if(order.getAddress() == null|| "".equals(order.getAddress()))本科课程设计说明书{System.out.println("address为空");orders.setRealname(order.getRealname());} else {orders.setAddress(order.getAddress());orders.setRealname(order.getRealname());}ordersdao.update(orders);}public boolean save(UserVO uservo) {String password_1 = uservo.getPassword();String password_2 = uservo.getRealpassword();boolean flag = false;if (password_1.equals(password_2)) {user.setName(uservo.getName());user.setEmails(uservo.getEmails());user.setAddress(uservo.getAddress());user.setPassword(uservo.getPassword());user.setPhone(uservo.getPhone());user.setRealname(uservo.getRealname());user.setZipcode(uservo.getZipcode());userdao.save(user);flag = true;} else {return flag;}return flag;}@Resourcepublic void setUser(User user) {er = user;}@Resourcepublic void setUserdao(UserDao userdao) {erdao = userdao;}@Resourcepublic void setUservo(UserVO uservo) {ervo = uservo;本科课程设计说明书}// 用户登录public User userlogin(UserVO users) {user = erlogin(users);return user;}// 更改用户数据public User userupdate(UserVO uservo) {// System.out.println(uservo.getId());user.setName(uservo.getName());user.setEmails(uservo.getEmails());user.setAddress(uservo.getAddress());user.setPassword(uservo.getPassword());user.setPhone(uservo.getPhone());user.setRealname(uservo.getRealname());user.setZipcode(uservo.getZipcode());userdao.update(user);user = userdao.querybyid(uservo.getId());return user;}//主要配置文件<?xml version="1.0"encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/aop/schema/aop/spring-aop-2.5.xsd/schema/tx本科课程设计说明书/schema/tx/spring-tx-2.5.xsd/schema/context/schema/context/spring-context-2.5. xsd"><context:annotation-config></context:annotation-config><context:component-scanbase-package="th.shop"></context:component-scan><bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager "><property name="sessionFactory"ref="sessionFactory"></property></bean><!--<tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes><tx:method name="list*" read-only="true"propagation="REQUIRED"/><tx:method name="add*" /><tx:method name="dsf" /></tx:attributes></tx:advice><aop:config><aop:pointcut expression="execution(public *th.shop.service.impl..*.*(..))" id="tx"/><aop:advisor advice-ref="txAdvice" pointcut-ref="tx"/> </aop:config>--><bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"ref="sessionFactory"></property></bean><bean id="dataSource"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property>本科课程设计说明书<property name="url"value="jdbc:mysql://localhost:3306/test"></property><property name="username"value="root"></property><property name="password"value="root"></property> </bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean "><property name="dataSource"><ref bean="dataSource"/></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.show_sql">true</prop><!--<propkey="e_second_level_cache">true</prop>--></props></property><property name="mappingResources"><list><value>edu/usth/shop/model/OrderProduct.hbm.xml</value><value>edu/usth/shop/model/Orders.hbm.xml</value><value>edu/usth/shop/model/Product.hbm.xml</value><value>edu/usth/shop/model/Sort.hbm.xml</value><value>edu/usth/shop/model/User.hbm.xml</value><value>edu/usth/shop/model/SysLog.hbm.xml</value> </list></property></bean></beans>本科课程设计说明书2.5程序运行与发布在MyEclipse集成环境中,将项目部署到tomcat上,再通过浏览器访问,前台:http://127.0.0.1:8080/ntbookshop进行访问,运行结果如图2.4所示:实现页面:图2.4系统首页订单显示的无刷新页面如图2.5所示图2.5订单显示的无刷新页面后台管理页面如图2.6所示本科课程设计说明书图2.6后台管理页面商品信息更新页面如图2.7所示图2.7 商品信息更新页面本科课程设计说明书三、总结我通过这次课程设计,充分复习了以前学过的知识,深刻的认识到了学习Jsp 的重要性,理解了jsp程序的开发步骤,提高了自己理论联系实际的能力,充分的锻炼了自己,也提高了分析问题的能力,为以后的学习和工作打下了基础在页面设计上,时间紧,任务重,所以只能从网络上下载了一套美观的前台页面,页面不能保证唯一性,但是代码方面是绝对唯一的,这次课设也让我理解到学习页面设计的重要性。

相关主题