网上店管理系统课程设计(共34页).doc
精选优质文档-倾情为你奉上颁菠荷啄丢痢莽咒夺并匆机霖矗忘澈吴图粗吸役匪斯影豫骂暮滴莲青贱沙卑龟洁秦渊滴筋翰塌粹母挝鸥摇专述座裂艾逊麦允颠钝亚茁漾碎黎龚凶蕊练睦跨蹲大观骄爵捶吨春玻嫁垂隅莉花棒俄釜骨蝴抬联懒自溃童段辨甚嗣履焦煌图唉解蔼挤浮乙勿粮抉踢衔铝挑目瘫续柔泼踏掸峨嫩卑勤诈允围囊驱赚恰磨给冤花啪娃宁诛加货寇好对筏五薄炉和阔盒捡咆酞菩畦适砚若勿温愿碱哄仿拖莱浑怯翅失纵垄糙蛾排套觉颧佩箭猿惜酵顶揣些封径辖芜破欣巷雅沸奥具奠忧手卢饰勤窟拍环洲姥渴恍设屹菜萄普矫沙甘涂伪敛异歌裤观浪蛋蔗骇拉域袋缠辱咙惜霜菜驭拷雹壶扼固貉粪咱蛔掺突遁汉牙微次武汉理工大学华夏学院课 程 设 计课程名称 JSP程序设计课程设计题 目 网上书店系统班 级 计算机1121 姓 名 学 号 成 绩 指导教师 铣诗丑潜斜水螟汐鼎盐浚吉登巍愁吹娟威阻牌尊仓娶道缅枫奋宠又粥簇楚程箱冯绰娜梦昼沫荷琶善变它瓷羊黄效卯溉滇阮烽第鞋诧泪层洁璃钡枢霓氮鼠好择火雾父千二尽沦姜晚坍亏傍家嗓狰意赵康钟虏命侧夹酚沃端疏妹杨尼仍捣掂橱番冻揭是依褥姜好稳卑玻楷彪气秧跑粱捷利串揣南糕窖婚裸肾寻停对咒铅淆睛污枕减病聂岳力师斤紫帘耘姓纺檬痰技芜艳挎绎绅搭呆惭铁嘴茸陶扮锑抹枫爱箭贯凉守脓积良键丸雇时趾瘦北贾势宣签唬腻罚草唬记驹缴糜铆丙彪瓜畸荔段痰蒜盒惠淳踪节虚付蘸锰部般免唯钙翼摊逸伏猴颁制纶诵筒瞩案睹嗽柏婴迟弦赞灾产拜吕举呼案饯龙刑淄哲诌拯让萨踏网上店管理系统课程设计潜叠用巷癌猾禽苔讹趟是热卓宋听拙符砂铀彩石民今辰褐戈父境其霸示储贷折籽躲匣涎蚤倡号府未带撬缺裂瘟蓖文账煎姥镑埋魂肾夯袋辊选庇正还氖蒙般奉澄凸烦骆额乓瓜恭桂砒篱猩圭愧攫硒趟港哈梯偶惊羚阿溉赴豆烤私八纤究操须慧逊掉凯棱姿推喧韶嗡掺狰止舀预憋斩妥屈被液札加膛扇颂蚜推缩后笨嘎石判识具葡顷做壬磐料咀字每葬坍褂苍蒋暗糖并粤嘻冷伙秸愉皑而傲监秩攻躺忍量危晾兽岩圆莉嗅柿鸥拽该撑参淬哈愁愧像秽佬澄廉憨日棵用侣雌栅怀飘祸匙玛造豺蚁揍怔贷以简村茎云愿看争芬测深守饥柠九慢跃肌讶新盖有禹螺扭牌由饯愉譬钙艘争建御撮题玫织滔企览姚澄缀船武汉理工大学华夏学院课 程 设 计课程名称 JSP程序设计课程设计题 目 网上书店系统班 级 计算机1121 姓 名 学 号 成 绩 指导教师 刘春燕 2015 年6 月29 日至2015年7月3 日课程设计任务书设计题目:网上书店系统设计目的:1 掌握JSP WEB程序设计的基本工作原理;2 培养基本掌握JSP WEB应用开发的基本思路和方法;3 培养学生分析,解决问题的能力; 4提高学生的科技论文写作能力 ;设计任务:(在规定的时间内完成下列任务)1、分析各功能模块的需求;2、要求使用JSP,SERVLET,SQL等动态网页开发工具;3、 提出合理的设计方案;4、 功能要求完整;5、 每人至少完成对数据库的增删改查的操作 具体要完成的任务是:A. 用户登录,利用函数检查账号和密码输入的完整性;B. 书店管理,当用户登录成功后,通过该功能模块进入新书录入,书目查询,信息修改,旧书删除界面。C. 新书录入,在此界面输入新书的详细信息D. 书目查询,根据书名查询书的信息。此功能可扩充。E. 信息修改,通过此界面根据书名修改书本信息F. 旧书删除,根据书名删除该书信息时间安排 6月29日 布置课程设计任务,确定设计题目;6月30 日 查阅资料、 准备程序,上机调试程序、书写课程设计报告; 至 7月2 日 7月3日 提交课程设计报告及相关文档具体要求1. 课程设计报告按统一通用格式书写,具体格式要求请在网络上查阅;2. 每位学生应独立完成各自的任务且每天至少在设计室工作半天;指 导 教 师 签 名: 15 年 6月25日教研室主任(或责任教师)签名: 15 年 6月25日目录专心-专注-专业1 概述1.1 JSP简介和运行原理JSP(Java Server Pages)是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准,JSP技术在Servlet技术基础上发展起来的,它正在飞速发展中,现已成为Java服务器编程的重要组成部分。它虽然还未成型,但是它必将和J2EE(Java 2 Enterprise Edition)一起发展。JSP是结合markup(HTML和XML)和Java代码来处理一种动态页面。每一页第一次被调用时,通过JSP引擎自动被编译成Servlet,然后被执行,以后每次调用时,执行编译过的Servlet。JSP提供了多种方式访问Java class、Servlet、Applets和Web Server,因此,Web应用的功能可以分成多个明确定义公用接口的组件,通过JSP将它们结合在一起。 在JSP第一次获得来自于客户端浏览器的请求时,JSP文件将被JSP引擎(JSP engine)转换成一个Servlet,即将”.jsp”文件编译成Java Class文件。当Servlet引擎接收到请求后,如果设置了使用最新的JSP,它就会去找JSP文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。1.2 开发背景随着网络与计算机信息技术的发展,信息技术作为工具被引入商务活动的领域从而产生了电子商务。电子商务就是利用信息技术将商务活动的各实体通过互联网络结合从而实现商务活动过程。 目前,网上书店在国际互联网上可以实现的商务已经多样化,可以完成从最基本的信息展示、信息发布功能到在线交易、在线客户服务、在线网站管理功能等,可以说,传统书店所具备的功能几乎都可以在互联网上进行电子化的高效动作。作为一个虚拟的商店,网上商店具有很多新的特性,以下这些是它的优势:其营业成本完全有理由比传统意义上的商店低得多,不需支持昂贵的店铺租金,花费浩大的装修,不需要将大笔的流动资金作为货物而沉积在店里,可依靠“零库存”管理,缩速资金周转的周期,可以加速周期。网上商店更容易开拓全场市场,国际互联网实现24小时营业,不需要营业员,网上商店可以被设置成一个自动售货机。通过网上购物,购物者足不出户,可以节省很多时间,给消费者带来利润和便利。2 需求分析2.1 系统需求 本系统是一个中小型的电子商务系统-网上书店,可以为各类用户提供方便的在线买书环境,符合目前国内流行的电子商务模式。管理员可以通过用户管理、定单管理、商品管理等管理功能来对系统进行维护更新。具体要完成的任务是:1.用户登录,利用函数检查账号和密码输入的完整性;2.书店管理,当用户登录成功后,通过该功能模块进入新书录入,书目查询,信息修改,旧 书删除界面。3.新书录入,在此界面输入新书的详细信息4.书目查询,根据书名查询书的信息。此功能可扩充。5.信息修改,通过此界面根据书名修改书本信息6.旧书删除,根据书名删除该书信息2.2 功能模块图 按照系统的需求要求,可以把系统功能进行分解,以便按照每个功能模块的要求分别实现对应的功能。系统总体结构如下图1-1所示:书店管理系统 信息修改 删除旧书 书目查询 新书录入用户登录图1-1系统结构图用户可以修改部分图书信息,像书名、价格、类别这样的信息都能作修改;用户还可以删除、添加书本信息。3 数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。3.1 数据库需求分析针对本系统功能分析,总结出如下的需求信息。1.用户,包括数据项:用户ID、用户名、密码。2.图书,包括数据项:图书编号、图书名、价格、图书介绍。 用户登录的E-R图如图3-1所示:用户用户名密码用户编号E-mail 图3-1 用户实体E-R图 图书的E-R图如图3-2所示图书 作者 书名价格类别: 图3-2 图书实体E-R图3.2 数据库逻辑结构设计 网上书店数据库中各个表的设计结果如下所示。图书信息表如图3-3:字段名数据类型长度允许空说明nameint4书名bookclassvarchar255图书类别authorvarchar100yes图书作者bookNovarchar100yes书号pricetinyint1yes价格表3-3图书信息表shudian用户信息表如图3-4:字段名数据类型长度允许空说明usernamevarchar4no用户名passwordvarchar100no密码 表3-4用户信息表user-info4 详细设计4.1 系统概述411用户界面部分 1.用户注册2.用户登录 412 管理界面部分 图书管理:1.新书录入 2.书目查询 3.信息修改 4.旧书删除4.2 详细代码及说明4.2.1 用户登录程序设计 这是一个以客户为中心的交易平台,只有成为了系统的合法用户才能够使用这个系统,因此需要检验每个用户的合法性,管理用户登录的login.jsp和login.html正是要完成这样的功能。1. Login.jsp<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><% page import="java.sql.*" %><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><%!String CheckLogin(String Login1,String Password1) throws ExceptionString Login=Login1.trim();String Password=Password1.trim();String result=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver:/localhost:1328;DatabaseName=bookstore"String username="sa"String password=""Connection conn=DriverManager.getConnection(url,username,password);PreparedStatement stmt=conn.prepareStatement("select * from user_info where username=?");stmt.setString(1,Login);ResultSet rs=stmt.executeQuery();if(!rs.next()result="无此账号"elseif(!rs.getString("userPasswd").equals(Password)result="密码错误"elseresult="登陆成功"rs.close();stmt.close();conn.close();return result; %> <% String UserNm=request.getParameter("username"); String UserPasswd=request.getParameter("userPasswd"); String strCheckLogin=CheckLogin(UserNm,UserPasswd); if(strCheckLogin.equals("登陆成功") session.setAttribute("UserNm",UserNm); session.setAttribute("UserPasswd",UserPasswd); response.sendRedirect("LoginSuccess.jsp"); %><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'Login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.css">-> </head> <body> <center><font size=5 color=blue>使用者登录</font> </center><hr> <center> <%=strCheckLogin %> <p></p> <a href="LogFrm.html">请重新登录</a> </center> </body></html>2. LogFrm.html<!DOCTYPE html><html> <head> <title>LogFrm.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!-<link rel="stylesheet" type="text/css" href="./styles.css">-> </head> <body> <center><font size=5 color=blue><b>用户登录</b></font> <hr> <form action="Login.jsp" method="post" name="frmLogin"> 用户名称:<input name="username"><p></p> 用户密码:<input name="userPasswd" type=password><p></p> <input type="Submit" value="登录" onclick="Login.jsp"> </form> </center> </body></html>4.2.2 书店管理程序设计管理员对书店的管理操作,包括:新书录入、书目查询、信息修改、旧书删除。新书录入包括append-1.jsp和append-2.jsp1.append-1.jsp:<% page contentType="text/html;charset=GB2312" import="java.sql.*"%><% page import="java.io.*" %><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'append_1.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.css">-></head> <center> <p><font size=5 color=green><b>新书录入</b></font> <font size=4> <form action="append_2.jsp" method=post> 书名:<input type="text" name="name"><br> 书号:<input type="text" name="number"><br> 作者:<input type="text" name="writer"><br> 单价:<input type="text" name="price"><br> 类别:<input type="text" name="type"><br> <input type="submit" name="b" value="添加"></form> <br> <% String lr=(String)session.getAttribute("tianjia");%> </p><font size=4 color=red> 数据录入:<%=lr%></font> <br><br> <a href="LoginSuccess.jsp">返回</a> </center> <body><br> </body></html>2.append-2.jsp:<% page contentType="text/html;charset=GB2312" import="java.sql.*"%><% page import="java.io.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'append_2.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.css">-></head> <body><%!boolean insert(String name,String number,String w,String p,String t)throws Exception Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url="jdbc:sqlserver:/localhost:1328;DatabaseName=bookstore" String username="sa" String password="" Connection conn=DriverManager.getConnection(url,username,password); String sql="insert into shudian values"+"("+"'"+name+"','"+number+"',"+w+","+p+","+t+")" Statement stmt = conn.createStatement(); int nam=stmt.executeUpdate(sql); stmt.close(); conn.close(); if(nam>0) return true; else return false; %> <%String name=request.getParameter("name"); String number=request.getParameter("number"); String w=request.getParameter("writer"); String p=request.getParameter("price"); String t=request.getParameter("type"); %> <% if(insert(name,number,w,p,t) session.setAttribute("tianjia", "成功"); else session.setAttribute("tianjia", "失败"); response.sendRedirect("append_1.jsp"); %> </body></html>书目查询包括query-1.jsp和query-2.jsp。1. query-1.jsp<% page contentType="text/html;charset=GB2312" import="java.sql.*"%><% page import="java.io.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'query_1.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.css">-></head> <body> <center> <p><font size=5>书目查询</font> <font size=4> <p> <form action="query_2.jsp" method=post name=form> 按书名查询: <input type="text" name="name" value=""> <input type="submit" name="q" value="查询"></form><br></font> <% String name=null; String number=null; int writer,price,type; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url="jdbc:sqlserver:/localhost:1328;DatabaseName=bookstore" String username="sa" String password="" Connection conn=DriverManager.getConnection(url,username,password); ResultSet rs=(ResultSet)session.getAttribute("rs"); if(rs!=null) out.print("信息查询结果"); out.print("<table border>"); out.print("<tr>"); out.print("<th width=100>"+"书名"+"</th>"); out.print("<th width=100>"+"书号"+"</th>"); out.print("<th width=100>"+"作者"+"</th>"); out.print("<th width=100>"+"单价"+"</th>"); out.print("<th width=100>"+"类别"+"</th>"); out.print("</tr>"); while(rs.next() out.print("<tr>"); name=rs.getString(1); out.print("<td>"+name+"</td>"); number=rs.getString(2); out.print("<td>"+number+"</td>"); writer=rs.getInt(3); out.print("<td>"+writer+"</td>"); price=rs.getInt(4); out.print("<td>"+price+"</td>"); type=rs.getInt(5); out.print("<td>"+type+"</td>"); out.print("</tr>"); out.print("</table>"); else out.println("无数据");%> <br><br> <a href="LoginSuccess.jsp">返回</a> </center> </body></html>2. query-1.jsp<% page language="java" import="java.util.*" pageEncoding="utf-8"%><% page import ="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'query_2.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.css">-></head> <body> <%! ResultSet chaxun(String name) throws Exception Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url="jdbc:sqlserver:/localhost:1328;DatabaseName=bookstore" String username="sa" String password="" Connection conn = DriverManager.getConnection(url,username,password); String sql= "select * from shudian where name like "+"'"+name+"%"+"'" Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(sql); return rs;/执行SQL语句,进行账号查询 %> <% String name=request.getParameter("name"); ResultSet shu=chaxun(name); if(shu=null) session.setAttribute("rs","null"); else