




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告(本科/专科)课程:Javaweb程序设计学号:姓名:班级:教师:朱强时间:2019年11月18日计算机学院设计名称:基于Javaweb的小米商城设计内容、目的与要求:内容:在客户端综合编程实验的基础上,结合JSP&JDBC等技术,完成商城后台管理系统的主体模块(登录、产品、产品信息等),实现相应信息的数据动态显示和后台操作功能,主要包括相关数据库设计以及用户登录功能、产品列表动态数据库表内容列表展示功能、购物车添加及与数据库的后台交互功能等,并能够借助开发工具进行服务端代码调试。目的:通过JSP&JDBC的综合运用,掌握中小型Java Web应用系统服务端数据库编程的基本原理和常用技术,具备进行服务端数据库表设计和JSP页面JDBC编程的基本动手能力。具体包括:1) 编写Java代码,熟悉并掌握JDBC的使用,包括Connection、Statement、PreparedStatement和ResultSet等对象的原理和常用方法;2) 编写JSP页面,熟悉并掌握JDBC在JSP页面中的应用语法、控制结构,掌握JSP内置对象的使用以及服务端调试技术;3) 实现JSP&JDBC等服务端编程技术的融汇贯通,掌握对单表和关联关系表进行CRUD等常规数据操作,并达到服务端页面的合理代码布局、动态网页呈现和实时性交互。要求:1) 数据库表的合理设计,包括自增主键设计、合理主外键关联设计、基础数据表设计等;2) JDBC开发包和驱动包的概念和作用,面向接口编程思想的理解;3) JDBC驱动包在Java Web工程中的引入机制;4) java.sql.*开发包下Connection、Statement、PreparedStatement、ResultSet等常用JDBC对象的应用;5) Statement对象和PreparedStatement对象在不同场合的灵活运用,及其发送SQL语句的不同使用方式;6) ResultSet对象的遍历运用;7) JDBC编程步骤;8) JSP JDBC模块编程的开发步骤和基本规范;9) JSP页面传递请求参数的不同方式,包括表单传递、超链接传递等;10) JDBC代码嵌入JSP页面,并与前续实验客户端技术相结合,完成客户端与服务端的动态交互效果,并能够进行服务端程序调试。11) 写出实验报告计划与进度安排:1、 创建数据库 11月18日-11月19日 小组讨论2、 设想商城功能 11月19日-11月20日 小组讨论3、 编程功能代码11月20日-11月23日小组分工4、 测试11月23日-11月24日设计过程、步骤(可加页):1、 数据库1)创建数据库代码:CREATE DATABASE MI2)创建用户信息表userCREATE TABLE users (uid int(11) NOT NULL AUTO_INCREMENT, uname varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, upwd varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,PRIMARY KEY (uid) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;3)创建分类信息表typeCREATE TABLE type ( typeID int(11) NOT NULL AUTO_INCREMENT, typename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (typeID) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;4)创建商品表CREATE TABLE product ( productID int(11) NOT NULL AUTO_INCREMENT, productname varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, price decimal(10, 2) NOT NULL, discribe varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, image varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, typeID int(11) NOT NULL, discribe2 varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, color varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, num int(11) NOT NULL, edition varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (productID) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 71 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;2、导入实验2,在此基础上开发登陆界面,利用用户表信息实现登录判断,登录成功转向首页,失败给予提示1)登录界面设计,其样式全部写在style.css中2)判断当用户名和密码为空时,弹出提示信息function check() if(document.myform.username.value=)alert(请输入账号!);document.myform.username.focus();return false;if(document.myform.password.value=) alert(请输入密码!);document.myform.password.focus(); return false;document.myform.submit();3)判断登录的账号是否在数据库中,建立DBUtil 类,在其中连接数据库/* * 数据库连接管理类 * * author 502 * */public class DBManager public static final String DEFAULT_PWD = 123456;public static final String DEFAULT_UID = root;public static final String DEFAULT_URL = jdbc:mysql:/localhost:3306/mi;public static final String DEFAULT_DRIVER = com.mysql.jdbc.Driver;public static Connection getConn() Connection con = null;try Class.forName(DEFAULT_DRIVER);con = DriverManager.getConnection(DEFAULT_URL, DEFAULT_UID, DEFAULT_PWD); catch (ClassNotFoundException e) System.out.println(数据库驱动加载失败);e.printStackTrace(); catch (SQLException e) System.out.println(数据库连接失败);e.printStackTrace();return con;4)建立登录界面判断的servlet为LoginServlet,在其中进行判断输入的用户名和密码是否存在。在其dopost()方法中写入;protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(UTF-8);String uname = request.getParameter(uname);String upwd = request.getParameter(upwd);String code = request.getParameter(code);String remember = request.getParameter(remember);boolean result = true;User u = new User();u.setUname(uname);u.setUpwd(upwd);HttpSession session = request.getSession();String code2 = (String)session.getAttribute(code);if(code2.equals(code)UserDAO dao = new UserDAO();List users = dao.select(u);result = users.size()0;if(!result)request.setAttribute(msg, 账号密码错误);elseresult = false;request.setAttribute(msg, 验证码错误);if(result)if(remember.equals(remember)String uri = request.getContextPath() + /;int expiry = 60*60*24*14;Cookie c = new Cookie(uname,uname);/c.setDomain();c.setPath(uri);c.setMaxAge(expiry);response.addCookie(c);c = new Cookie(upwd, upwd);c.setPath(uri);c.setMaxAge(expiry);response.addCookie(c);session.setAttribute(user, u);3、用户表的显示以及增加、更新和删除操作;要求根据实际情况分别采用Statement对象和PreparedStatement对象发送SQL语句;1)用商品表表的显示,即对数据库查询并显示在界面在BookDao.java中写出查询所有书籍信息封装到ArrayList中的函数如下public ArrayList get_ListInfo()ArrayList tag_Array = new ArrayList();Connection conn = DBUtil.getConnectDb();String sql = select * from book;PreparedStatement stm = null;ResultSet rs = null;try stm = conn.prepareStatement(sql);rs = stm.executeQuery();while(rs.next()BookBean tag = new BookBean();tag.setnum(rs.getString(num);tag.setsname(rs.getString(sname);tag.setAutho(rs.getString(author);tag.setPress(rs.getString(press);tag.setType(rs.getString(type);tag.setprice(rs.getInt(price);tag_Array.add(tag); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finallyDBUtil.CloseDB(rs, stm, conn);return tag_Array;在shouye.jsp中获取ArrayList中封装的内容,并显示在页面上% ArrayList bookdata = new ArrayList(); bookdata = (ArrayList)request.getAttribute(data); if(bookdata=null) BookDao bookdao = new BookDao(); bookdata = (ArrayList)bookdao.get_ListInfo(); for (BookBean bean : bookdata) % button type=button onclick=deletebook()删除 2)增加界面在增加书籍界面“input.jsp”中,在表单中action=/text5/IndexServlet,在IndexServlet中的dopost()方法改写如下protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stub/doGet(request, response);request.setCharacterEncoding(UTF-8);response.setContentType(text/html;charset=UTF-8);/获取表单信息String num = request.getParameter(num);String bookname = request.getParameter(bookname);String writer = request.getParameter(writer);String select = request.getParameter(select);String type = request.getParameter(type);int money = Integer.parseInt(request.getParameter(money);BookDao bookdao = new BookDao();bookdao.addBook(num,bookname,writer,select,type,money);response.sendRedirect(/text5/show.jsp);结果与分析(可以加页): (1) 当不输入账号和密码时弹出提示,如下图1所示:图1:提示信息(2) 输入错误的账号或密码,界面上有密码错误的字样,要重新输入账号和密码,如下图2所示:图2:密码错误重新输入界面(3) 正确输入,进入主界面;如下图3所示:图3:主界面(4) 点击购物车管理,进入其界面,如下图4所示: 设计体会与建议: 问题分析:1)问题一:解决办法:在进行数据库查询时,输入有误找不到“sa”列,“Unkno
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物联网初级工程师面试题预测与解析实战技巧
- 2025年专业进阶软件开发工程师考试强化训练题
- 【教案版】小学四班级上册 乒乓球2
- 2025年注册电气工程师考试模拟题及复习建议
- 2025年汽车销售与服务顾问招聘考试模拟题集及答题技巧
- 2025年小学特岗教师招聘考试复习手册及预测题
- 2025年IT企业招聘笔试技术预测试题及答案
- 2025年汽车销售顾问招聘笔试模拟题及答题技巧解析
- 2025年特岗教师招聘笔试初中语文模拟试题详解
- 2025年建筑工程师初级职称面试指南与模拟题解析
- 北京理工大学应用光学课件(大全)李林
- 高一第一堂班会课
- 【学生生涯规划系列】高一上学期生涯规划讲座课件
- 失智老年人走失风险评估表、“十人四追”法
- 焊接工艺要求
- 全员安全生产责任制度
- 工作桌面pad相关gec3000通讯协议v2
- 正压式呼吸器使用与管理规范
- GB∕T 37004-2018 国家物品编码通用导则
- 新部编人教版八年级上册道德与法治全册课时练(作业设计)
- DB14∕T 1131-2015 麦茬复播花生栽培技术规程
评论
0/150
提交评论