1、jspweb,然后运行D:resin-2.1.13binhttpd.exe,在浏览器输入http:/localhost:8080/j1.jsp,看到了“我是JSP!”的字样了吧,你的Servlet服务器就这样配置成功了,为了能编译Servlet类,还需要做的事情是:把D:resin-2.1.13lib加入到windows的CLASSPATH的环境变量中。2-2 JSP、ASP和PHP技术之比较JSP与ASP、PHP技术都是目前网上最流行的在服务器端运行的脚本技术,JSP能用JavaBeans技术封装,达到商业逻辑的目的,ASP对应之的是COM组件,因此两者都能用于开发商业逻辑,PHP则更像于一
2、个纯脚本,仅适合于普通的网站开发,而不能用作商业逻辑而被冠以“Person Home Page”的名称,这是最贴切不过的了。JSP与ASP相比,JSP具有跨平台、安全、强大的可伸缩性的特点,而果硬要挑一些毛病,JSP相对别的脚本更加难掌握,因为精通JSP必须精通Java语言,对于中小型项目,我们要考虑开发人员、开发速度、开发成本等问题,在这方面ASP和PHP会比JSP更容易胜出。值得一提的是,ASP的最新版本ASP.NET与原来的ASP性质完全是不同的,它和JSP一样,都是一种编译性的脚本,本身完全与强大的Net框架结合,完美的支持Xml的各种应用,与昔日的ASP不可同日而语,但是无论是ASP
3、还是ASP.NET,它都摆脱不了Windows平台本身,这是ASP一个致命的缺点。第3章 系统设计本系统采用三层架构设计,它的工作原理如图3-1所示。图3-1三层架构模型采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。3.1数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。3.1.1 数据库需求分析针对一般在线书店的需求,得出如下需求信息。
4、 用户分为游客和已注册用户。 订单分为单张详细订单和总订单。 一个用户可以购买多本图书。 一个用户对应一张订单。 一个列表对应多张订单。针对本系统功能分析,总结出如下的需求信息。 用户,包括数据项:用户ID、用户名、密码。 图书,包括数据项:图书编号、图书名、价格、图书介绍。 订单列表,包括数据项:订单编号、图书编号、购书数量。 订单,包括数据项:订单编号、用户编号、下单时间。从本系统中规划出的实体有:用户实体、图书实体、订单实体、订单列表实体。实体之间关系的E-R图如图3-5所示。 1 1 N N 图3-5实体关系E-R图用户信息实体的E-R图如图3-6所示。图书实体的E-R图如图3-7所示
5、。订单实体的E-R图如图3-8所示。订单列表实体的E-R图如图3-9所示。图3-6 图书实体E-R图 图3-7 用户实体E-R图图3-8 订单实体E-R图 图3-9 订单列表实体E-R图3.1.2 数据库逻辑结构设计 在线书店数据库中各个表的设计结果如下面的标和所示。表3.1为图书信息列表book。表3.1图书信息表book字段名数据类型长度允许空说明IDint4自动编号,主键bookname书名bookclassvarchar255图书类别author100yes图书作者publishfloat8出版社bookNo书号Contenttext16内容介绍pricetinyint1价格Amoun
6、t总数量Leav_number库存量picture封面reg_timedatetime入库时间表3.2为用户信息列表shop_user。表3.2用户信息表shop_user自动编号,会员编号usernameno用户名password密码Names会员级别Sex50名字Addr地址Phone25电话Post邮编Email邮箱Retime注册时间RegIpAddr20注册ip表3.3为订单表,记录订单信息orders。表3.3订单信息表orders自动编号,订单编号order_id会员编号user_id图书编号quantity订购数量submit_time提交订单时间consignmentTime
7、交货时间totalprice总价content备注ipAddr用户ipisPayoff11是否付款isSale是否发货表3.4为订单列表,记录订单列表信息allorder。表3.4 订单列表allorder 自动编号,卡类型编号orderID订单号BookNo数量表3.5书店管理员信息表,记录管理员信息bookadmin。表3.5 管理员信息表bookadminAdminUser管理员用户名AdminPass yes管理员密码表3.6图书分类信息表,记录图书分类信息bookclass。表3.6 图书分类表 bookclassClassname30第4章 详细设计4.1 系统概述411用户界面部
8、分图书选购(可按分类查找图书,或者通过关键字进行查询)。购物车功能。查看图书详细信息。用户注册。用户登录。查看用户的订单信息。修改用户个人信息。412 管理界面部分现有图书管理:修改,删除,查看。用户管理:查看,修改,删除。订单管理:查看订单清单,更新订单付款,出货状态,删除订单。添加新图书。添加图书分类。4.2 详细代码及说明4.2.1实现bookshop.run包1:login.java这是一个以客户为中心的交易平台,只有成为了系统的合法用户才能够使用这个系统,因此需要检验每个用户的合法性,管理用户登录的login.java正是要完成这样的功能。类中定义了个private属性和他们对应的s
9、etX()/getX()方法和默认构造函数和execute() getSql() 操作。private属性分别是:private String username; /登录用户名 private String passwd; /登录密码 private boolean isadmin; /是否管理员登录 private long userid=0; /用户ID号 重要操作:主要介绍execute()execute()操作 功能:从数据库中查询用户信息。返回值:boolean型,如果取值成功返回true,否则,返回false。设计思路:获得数据库连接对象Connection 对象,ResultSe
10、t对象和Statement对象 调用getSql()方法获得sql语句执行sql语句。程序主干部分代码:public boolean execute() throws Exception try con=DataBase.getConnection(); stmt=con.createStatement(); rs = stmt.executeQuery(getSql(); catch(Exception e) e.printStackTrace(); while (rs.next() if (!isadmin) userid = rs.getLong(id); flag = true; 2:
11、op_book.java该类主要负责图书的管理,包括图书的修改,查询,删除和添加等。op_book类有以下属性: private book abooks = new book(); /新的图书类 private javax.servlet.http.HttpServletRequest request; /建立页面请求 private boolean sqlflag = true ; /对接收到的数据是否正确 private Vector booklist; /显示图书列表向量数组 private int page = 1; /显示的页码 private int pageSize=5; /每页
12、显示的图书数 private int pageCount =0; /页面总数 private long recordCount =0; /查询的记录总数 public String sqlStr=; op_book类有以下方法(省去了属性对应的getX()/setX()方法):book_search();完成图书查询,包括分类,关键字查询。 delete();负责图书的删除。 getOnebook();主要完成图书的单本查询,用于支持页面的“查看详细信息”。 insert();负责图书的添加。 to_String();把字符串以“ISO 8859-1”编码形式输出,使页面正常显示。 updat
13、e();负责修改图书信息。 getRequest();负责接受页面传递过来的参数,分解并将参数存放到abooks对象中。重要操作:主要介绍getRequest() getRequest()方法功能:负责从页面接受表单数据并分解,设置abooks对象相应属性。参数设计:页面传递的Request对象,其中包括表单数据。 返回值:boolean型,true表示成功,否则返回false。 设计思想:获取页面传递的Request对象分解Request对象获取表单参数值把参数值设置成图书对象abooks相对应的属性值。 程序主干代码: public boolean getRequest(javax.ser
14、vlet.http.HttpServletRequest newrequest) request = newrequest; String BookName = request.getParameter(BookName abooks.setBookName(to_String(BookName); String author = request.getParameter(author abooks.setAuthor(to_String(author); String publish = request.getParameter(publish abooks.setPublish(to_St
15、ring(publish); String bookclass = request.getParameter(bookclass abooks.setBookClass(bc); String bookno = request.getParameter(bookno abooks.setBookNo(to_String(bookno); String picture = request.getParameter(picture abooks.setPicture(to_String(picture); price =new Float(request.getParameter(price).f
16、loatValue(); abooks.setPrice(price); amount = new Integer(request.getParameter(amount).intValue(); abooks.setAmount(amount); String Content = request.getParameter(Content abooks.setContent(to_String(Content); .3:op_user.java: 为了使用上的方便,我们把对用户的管理,包括用户的添加,删除,修改,查询等集合成一个管理类。 该类具有以下属性: private user user
17、= new user(); /新的用户对象 private Vector userlist; /显示用户列表向量数组 /显示的页码 private int pageSize=8; /每页显示的图书数 private String message = /出错信息提示 private String username = /注册后返回的用户名 private long userid = 0; /注册后返回的用户ID该类具有的主要方法(省去了属性相关的getX()/setX()操作): add():负责用户的添加。 delete():负责删除指定ID的用户。 get_alluser():取出书店所有用
18、户的信息。 getGbk():返回指定字符串的GBK编码。 getUserinfo():负责取得用户的详细信息。 update():负责修改用户资料。 getRequest():获取表单数据,并分解存储。4:op_buy.java我们把业务逻辑和对订单以及和订单列表的管理集成到了该类当中。该类具有以下属性: private HttpSession session; /页面的session; private boolean sqlflag = true; /对接收到的数据是否正确 private Vector purchaselist; /显示图书列表向量数组 private Vector al
19、lorder; /订购单列表 private Vector order_list; /订单清单列表 private int booknumber = 0; /购书总数量 private float all_price = 0; /购书总价钱 private boolean isEmpty = false; /库中的书数量是否够购买的数 private int leaveBook = 0; /库存数量 private String orderId = /用户订单号 private boolean isLogin = true; /用户是否登录! /显示的页码 private int pageSi
20、ze = 15; /每页显示的订单数 private int pageCount = 0; /页面总数private long recordCount = 0; /查询的记录总数该类的主要操作(省去了属性相关的getX()/setX()操作)addnew():负责向购物车中添加新购买的图书。delete():负责从数据库中删除指定ID的订单。modiShoper():负责修改购物车中已选的图书。delShoper():负责删除购物车中的物品。getAllorder():负责从数据库中的订单列表中查询指定用户的订单列表。getGbk():获得指定字符串的GBK编码。getOrder():获得单个
21、订单对象。payout():提交购物车,把订单插入到数据库中。update():该方法负责当用户付款后,把数据中对应订单的是否付款标记修改成已付状态。主要介绍addnew() addnew()方法负责向购物车中添加一条新记录。参数设计:页面传递的request对象。boolean类型,成功返回true,否则返回false。从页面获得表单数据(request对象中)-获得图书编号等参数值判断购买数量是否合法如果是可以操作,否则不能操作判断是否第一次购买如果是第一次购买,按第一次购买操作否则查询购买列表,找是否有相应项,有则直接修改数量否则添加新记录。函数代码: public boolean addnew(HttpServletRequest newrequest) throws Exception request = newrequest
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2