1、 目录 前 言 . 3 第一章 概 述 . 4 1.1 开发背景 . 4 1.2 JSP 简介 . 4 1.2.1 JSP 的运行原理 . 5 1.2.2 JSP 页面的组成 . 6 1.2.3 JavaBean 技术介绍 . 7 1.2.4 JSP 的运行环境 . 7 1.3 系统开发环境 . 8 1.3.1 服务器的配置 . 8 1.3.2 数据库后台环境的配置 . 12 第二章 需求分析 . 15 2.1 系统说明 . 15 2.2 系统功能简介 . 15 2.2.1 基本功能 . 15 2.2.2 用户界面设计 . 16 2.3 系统运行环境 . 16 第三章 系统设计 . 17 3.
2、1 系统设计思想 . 17 3.2 系统功能模块化 . 18 3.3 数据库设计 . 19 3.3.1 数据库需求分析 . 19 3.3.2 数据库概念结构 . 19 3.3.3 数据库逻辑机构设计 . 20 第四章 详细设计 . 22 4.1 系统概述 . 22 4.2 系统主要文件 . 23 4.3 详细代码及说明 . 23 4.3.1 实现用户实体的 Bean . 23 4.3.2 实现商品实体的 Bean . 26 4.3.3 实现订购单实体的 Bean . 28 4.3.4 实现购物车实体的 Bean . 29 4.3.5 实现购物实体的 Bean . 30 4.3.6 前台运行程序
3、 cart.jsp . 34 第五章 总结 . 38 致谢 . 39 参考文献 . 40 前 言 随着 Internet 国际互联网的发展,越来越多的企业开始建造自己的网站。基于 Internet的信息服务,商务服务 已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态商务网站。 JSP 是 Sun 公司推出的一种网站开发技术, Sun 公司借助自己在 Java 上的不凡造诣,又把人们引进 JSP 时代, JSP 即 Java Server Page,它可以在 Servlet 和 Jav
4、aBean 的支持下,完成功能强大的 Web 应用程序。所以,在我的毕业设计中,我采用了 JSP 作为开发工具,构建了一个能实现简单的电子商务的小型动态商务网站 网上书 店销售系统。该系统能实现用户的注册、登录功能;能够实现商品的查询,订购等功能。该系统基本上具备一个网上商品销售系统应该具备的功能,该设计项目基本上体现了构建一个动态商务网站所需要的技术,可以说,目前的大型商务网站也就是我们这个小型网站在内容上的扩充和重复。 通过这次的毕业设计,我了解了目前流行的动态商务网站的构成和运作原理,掌握了用 JSP 构建动态网站的相关知识和技术原理,锻炼了自己的动手实践能力。更重要的是,通过这次的毕业
5、设计,我培养出了刻苦钻研的学习精神和严肃认真的学习态度,这对我以后的学习和工作有很大的 益处。 在这次毕业设计过程中,我得到了指导老师符琦老师和其他同组同学的悉心指导。在此,我对他们表示衷心的感谢! 第一章 概 述 1.1 开发背景 随着时代的发展,信息技术、 Internet/Intranet 技术、数据库技术的不断发展完善,网络进程的加快,传统的购物方式也越来越不能满足人们快节奏的生活需求,使得企业的 IT部门已经认识到 Internet 的优势 ,电子商务就是在这样一个背景下产生发展起来的。伴随着电子商务技术的不断成熟,电子商务的功能也越来越强大,注册用户可以在网上搜索购买到自己想要 的
6、各种商品,初步让人们体会到了足不出户 ,便可随意购物的快感。我的毕业设计也就正是一个电子商务系统的开发 -网上商品销售系统。 1.2 JSP 简介 JSP( Java Server Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准, JSP 技术在 Servlet 技术基础上发展起来的,它正在飞速发展中,现已成为 Java 服务器编程的重要组成部分。它虽然还未成型,但是它必将和J2EE(Java 2 Enterprise Edition)一起发展。 JSP 是结合 markup(HTML 和 XML)和 Java 代码来处理一种动态页面。
7、每一页第一次被调用时,通过 JSP 引擎自动被编译成 Servlet,然后被执行,以后每次调用时,执行编译过的 Servlet。 JSP提供了多种方式访问 Java class、 Servlet、 Applets 和 Web Server,因此, Web 应用的功能可以分成多个明确定义公用接口的组件,通过 JSP 将它们结合在一起。 1.2.1 JSP的运行原理 在 JSP 第一次获得来自于客户端浏览器的请求时, JSP 文件将被 JSP 引擎( JSP engine)转 换成一个 Servlet,即将 ”.jsp”文件编译成 Java Class 文件。当 Servlet 引擎接收到请求后,
8、如果设置了使用最新的 JSP,它就会去找 JSP 文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的 Servlet,最终将请求转交给编译好的 Servlet 引擎执行。如图 1-1: 图 1-1 JSP 运行原理 在编译时如果发现 JSP 文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则所转换产生的 Servlet 代码被编译, 然后该 Servlet 被 JSP 引擎加Client 客户端 请求( Request) Web Server 响应( Response) Server extension 服务器扩展 Servlet engine
9、JSP engine Servlet引擎 JSP 引擎 Class loader Java complier JSP parser 类载入器 Java 编译器 JSP 语法分析器 载到内存中。此时 JSP 引擎还请求了 jspInit()方法的执行,并对此 Servlet 初始化。 JspInit()方法在 Servlet 的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该 JSP 文件的请求,服务器将检查该 JSP 文件自最后一次被存取后是否经过修改。如果没有修改,则将请求交还给还在内存中的 Servlet 的 jspService()方法,执行回复操作。由
10、于 Servlet 始终驻于内存,所以响应是非常快的。 Jsp 页面在第一次访问时由于要转化和编 译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件了,所以速度非常得快。 1.2.2 JSP页面的组成 JSP 页面看上去像标准的 HTML 和 XML 页面,并附带有 JSP 引擎能够处理和解析执行的代码与组件。通常, JSP 代码和组件用于创建在最终页面上显示的文本。通常来说,JSP 页面包括编译指令,动作指令,声明,表达式和程序段等内容。 1)编译指令:使用 JSP 编译指令( % 和 %内的)来指定所使用的脚本语言, Servlet实现的接口 ,Servlet 扩展的
11、类 ,Servlet 导入的软件包。 JSP 指令的一般语法形式为: 。 2)动作指令(标识):动作指令用于执行某些动作。在 JSP 规范中有 2 种类型的动作指令的标识。第一种是标准动作,它定义的是无论在什么版本的 JSP 引擎或 Web 服务器下总是可用的动作。第二种是自定义动作,它通过使用 taglib 指令来实现。例如 JSP: useBean;JSP: setProperty; JSP: getProperty 就是标准动作。 3)声明:用于声明合法的变量和方法。与任何语言相同, JSP 语言使用变量来保存数据。这些变量用 declaration 元素 声明 ,声明的语法为 。当页面
12、被初始化的时候, JSP 页面中的所有声明都被初始化。除了简单的变量,方法也能被声明。声明不对当前的输出流产生任何影响。 4)表达式:通过计算表达式所得到的结果来表示某个值。表达式的形式为:。表达式求值的结果被强制转换为一个字符串,并插入到当前的输出流中。 5)程序段: JSP 可以在页面中包含的一段程序,称之为程序段。程序段是一个代码片断,在请求的处理过程中被执行。程序段可以和页面中的静态元件组合起来创建动态生成的页面。程序段在“ ”中定义,在这对标识中的所有东西都会被当成 JSP 程序执行。 1.2.3 JavaBean技术介绍 JavaBean 技术是一种基于 Java 的组件技术, J
13、avaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据的提取等,是解决代码重用问题的一种策略。 以前的组件无法实现真正的代码重用,其主要原因就是它们对于处理平台的依赖和对开发语言的依赖过重。由于 Java 语言在这些方面所具有的特点和优势,使得基于它的软件JavaBean 组件技术倍受人们的关注。它的任务就是:一次编写, 可以在任何地方执行, 可以在任何地方重用。 JavaBean 组件可以在任何地方冲用包括了可以在应用程序、其他组件、文档、 Web 站点和应用程序构造器工具等多种方案中再利用。 为了创建和使用 Java 软件组件, JavaBean 被实现为一种独立于平
14、台和结构的应用程序接口,它的实现可以忽略内部的结构及细节问题,只需要定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。 JavaBean 的实质就是一个 .class 文件,也可以成为类文件。 JavaBean 以 binary 格式保存,可以保护 Java 源代码不容易被他人抄袭。 1.2.4 JSP 的运行环境 要运行 Jsp(注意,不是浏览 Jsp页面),需要有支持 Jsp的服务器。这里分 2种情况:一种是自身就支持 Jsp 的服务器,如 Jrun,Weblogic,JSWDK 等;而另一种则是在不支持 Jsp的服务器上安装 Jsp 引擎的插件,如在 I
15、IS,Apache 等服务器上安装WebSphere,tomcat,Resin 等插件。其中主流服务器是 Weblogic 和 tomcat. Weblogic 是一款功能强大的服务器软件 ,配置比较简单 ,而且 Jsp 的扩展功能较多,附带了数据库 的 JDBC 驱动程序。,支持 JHTML(一种与 Jsp 十分相似的技术 ),是目前市场占有率最高的服务器。不过, Weblogic 的运行情况不太稳定,使用它调试 Jsp文件,出现语法错误或者数据库连接错误时, Weblogic 就有可能崩溃。 Tomcat 服务器是 Apache Group Jakarta 小组开发的一个免费服务器软件,适
16、合于嵌入Apache 中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。访问的地址 http:/jakarta. apache.org/tomacat/index.html, Tomcat 服务器的兼容性很好,如 WebLogic 服务器采用其为 Web 服务器引擎, Jbuilder 将其作为标准的测试服务器, Sun公司也将其作为 JSP技术应用的示例服务器。不足之处是它的配置比较麻烦,而且有一些安全性的问题没有解决。但是 Tomcat 服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。 1.3 系统开发环境 1.3.1 服务器的配置 前面介绍了 JSP 的
17、生命周期,为了说明 JSP 对运行环境的要求,先简单的介绍一下它的运作过程。服务器在接收到客户端传过来的一个页面请求时,先判断是否是 JSP 页面请求(从扩展名来判断),如果不是,只是一般的 HTML 页面请求,则直接把 HTML 文档传给客户端,完成客户端与服务器的一次连接。如果判断是 JSP 页面请求,则由 JSP 引擎(或Servlet 引擎)将 JSP 页面代码转换成 Servlet 代码,再通知服务器上的 JVM( Java 虚拟机)对转换过来的 Servlet 代码进行编译,将生成的字节码文件放在服务器上相应的地方,并执行编译后得到的字节码,然后把结果传送给客户端,这样就完成一次连
18、接。以后如果有相同的 JSP 页面的请求,则直接由 JSP 引擎通知 JVM 执行已有的字节码, 并把结果传送给客户端。 从上面 JSP 运作全过程可见,运行 JSP 最少需要三样东西: JSP 引擎、 Web 服务器和 JVM。最常用的 Java 开发工具就是 JDK 和 Jbuilder,它们之间的很大不同就是 JDK 是字符界面,而 Jbuilder 是窗口界面。本系统直接采用 JDK 作为 JVM 和 java 编译器。所用的操作系统是 Windows2000,服务器采用的是 tomcat,利用了它充当 Jsp 引擎,同时还利用了它的信息发布功能。首先把 JDK, tomcat 安装到
19、本地硬盘 D 盘根目录下,下面详细的介绍如何配置运行环境: 配置环境 变量 第一步: 进入我的桌面,右击“我的电脑”,选择“属性”选项,进入“系统属性“对话框,单击”高级标签“,如图 1-2 所示: 图 1-2 第二步: 点击上图箭头所示“环境变量”,进入图 1-3 画面。 图 1-3 第三步: 单击 “系统变量 ”部分的 “新建按扭 ”,创建 JAVA-HOME 变量,在变量值栏内输入 C:jdk1.4.2_05; 如图 1-4 所示: JAVA_HOME 指明 JDK 安装路径,就是刚才安装时所选择的路径 C:jdk1.4.2_05,此路径下包括 lib, bin, jre 等文件夹(此变
20、量最好设置,因为以后运行 tomcat, eclipse 等都需要依靠此变量) 图 1-4 第四步: 同样的方法创建 CLASSPATH 变量,在变量栏内输入, .;%JAVA_HOME%lib; %JAVA_HOME%libtools.jar (要加 .表示当前路径 )CLASSPATH 为 java 加载类 (class or lib)路径,只有类在 classpath 中, java 命令才能识别 。 第五步: 创建 PATH 变量,在变量栏内输入, %JAVA_HOME%bin;%JAVA_HOME%jrebin Path 使得系统可以在任何路径 下识别 java 命令 。 第六步: 创建 Tomcat-Home 变量,在变量栏内输入 C:Tomcat5.0; 如图 1-5 所示: 图 1-5 第七步: 检测配置是否成功: 1) 检测 JDK 是否配置成功 编写一个 java 程序,例如: public class HelloWorldApp public static void main(String args)