基于JAVA的安全电子商务

GO 2008电子商务系统的平台选择Windows2000 AdvancedServer + JDK1.3 + Apach Tomcat4.0+SQL Server2000。Windows2000和SQLServer是微软公司的产品早已经为大家所熟悉,这里就不做过多介绍,这一章主要给大家介绍一下WEB应用开发的新技术JSP。

3.1.1 JSP技术介绍

一、JSP是什么

JSP就是一种Web编程脚本语言。它(Java Server Pages)由Sun Microsystem公司于1999年6月推出,是基于Java Servlet以及整个Java体系的Web开发技术。利用这一技术可以建立先进、安全和跨平台的动态网站。

二、JSP与其他动态网页技术的比较

(1)JSP与ASP

总的来说,Java Server Pages (JSP) 和微软的Active Server Pages (ASP)在技术方面有许多相似之处。比如,两者都被基于WEB应用实现动态交互网页制作提供的技术环境支持;同时,两者都能够让程序员实现程序编制和网页设计的分离。但两者之间仍存在很多不同之处,其中最本质的区别在于:两者来源于不同的技术规范组织,其实现的基础即WEB服务器平台要求不同。

  1. JSP技术是开放的技术

JSP和ASP技术明显的不同点:开发人员对各自软件体系设计的深入了解的方式不同。JSP技术基于平台和服务器的互相独立,支持广泛而专门,被各种工具包,服务器的组件和数据库产品开发商所提供。相比之下,ASP技术主要依赖微软的技术支持。

平台和服务器的独立性

JSP技术依附于一次写入之后可以运行在任何符合java语法结构环境中。与过去那种依附于单一平台或开发商的模式不同,JSP技术能够运行在WEB服务器上,并且支持来自多家开发商提供的工具包。

由于ASP技术是基于ActiveX控件技术提供客户端和服务器端的开发组件,因此ASP技术基本上局限于微软的操作系统平台。不能很容易的实现在跨平台的WEB服务器上工作。

开放的开发过程,开放的源代码

SUN应用互相协作的过程开发JSP技术。自从1995年以来,SUN已经用这种开放过程方法同国际JAVA组织合作开发和修改了JAVA技术与规范。JSP应用程序界面(API)毫无疑问已经取得成功,并将随JAVA组织的不断开放扩大而继续完善。相反,ASP技术仅依靠微软本身的推动,其发展是建立在独占、封闭的开发过程基础上的。

JSP标签的可扩充性

尽管ASP和JSP都使用标签和脚本技术来制作动态网页,JSP技术能够使开发者应用JSP标签库,所以开发者充分利用与XML兼容的标签技术的强大功能,大大减少对脚本语言的依赖。由于定制标签技术,降低了开发者制作网页和向多个网页扩充功能的复杂程度。

JSP跨平台的可重用性

JSP的开发人员在开发过程中一直关注可重用性。JSP组件(EJB,JAVA BEAN,或定制的JSP标签)都是跨平台可重用的。EJB组件可以访问传统的数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。JSP技术的标签可扩充功能为开发人员提供简便的、与XML兼容的接口,即共享网页的打包功能,使其完全的工业标准化。

  1. Java的优越性

JSP技术用java作为脚本语言,而ASP网页使用微软的Vbscript或javascript。Java是成熟的、强大的、易扩充的编程语言,远远优于基于BASIC的脚本语言。如:java的可执行性优于VBScript或javascrip语言。因为它们利用java技术并且都被编译为javaservlet,JSP网页为整个服务器端的java库单元提供了一个接口来HTTP的应用程序服务。

Java使开发人员的工作在其他方面也变得一样容易、简单。例如,当ASP应用程序在WINDOWS NT系统被怀疑可能会崩溃时,java能有效的防止系统的崩溃。Java语言通过提供防止内存泄漏的方法,在内存管理方面也大显身手。加之,JSP还提供了健壮的意外事件处理机制。

易于维护性

基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理。脚本语言都能很好地服务于小的应用程序,但不能适应大型的、复杂的应用程序。因为java是结构化的,所以它比较容易创建和维护庞大的、组件化的应用程序。

JSP突出的组件技术使修改内容时不影响逻辑或修改逻辑时不影响内容边的很容易实现。企业级的javabean结构整和了企业逻辑,例如数据库的访问、安全、事务完整性及独立性。因为JSP技术是一种开放的、跨平台的结构,因此,WEB服务器、平台及其他的组件能很容易地升级或切换,且不会影响JSP基本的应用程序。这一特点使JSP能够适用现实世界的各种WEB应用程序的不断变化和发展。

企业产品的多样性

java2平台即企业版(J2EE)是适用于多企业应用程序的java结构,J2EE的一部分,JSP网页可访问所有J2EE组件,包括javabean,企业javabean及javaservlet。JSP网页都能完全编译成javaservlet,所以它们都享有灵活性的特点和作为服务器端的java应用程序。J2EE平台内容不仅包括管理复杂的企业应用程序,而且包括事物管理技术和pooling资源管理技术。

通过J2EE,JSP网页能够用许多方式同企业系统交互访问。J2EE支持两种CORBA规范技术:java IDL 和RMI。在企业级javabean技术支持下,JSP网页通过运用高级的,对象映射的方式访问数据库。

因此JSP技术是基于java的开放性产品,因此它能够广泛支持不同的提供商提供的工具。WEB服务器和应用程序的服务,这样能够使开发者选择最佳的开发方法,选择最适应他们的应用程序开发的工具包,同时,有效的保护开发者在代码和人员培训上的投资。

  1. JSP与CGI

CGI(Common Gateway Interface)是公用网关接口,可以称它为一种机制,因此CGI程序可以用不同的语言来编写,如Visual Basic、Delphi或C/C++。首先将已经写好的程序放在WEB服务器的计算机上运行,然后将其运行结果通过WEB服务器传输到客户端的浏览器上。我们通过CGI建立WEB页面与脚本程序之间的联系,再利用脚本程序来处理访问者输入的信息而据此作出响应。事实上,这样的编制方式比较困难而且效率低下,以为每一次修改都必须重新将CGI程序编译成可执行文件。下面从几个方面比较JSP与传统CGI的特性。

可移植性

大多数WEB服务器支持CGI接口,但CGI程序自身并不能跨平台运行:javaservlet程序则具有java程序的优点,可运行在任何平台之上,大多数WEB及应用服务器支持java及javaservlet API。

性能

传统的CGI环境下,客户端每一次对CGI程序的请求,都使服务器产生一个新的进程来装载、执行CGI程序,大量的并行请求大大降低了其性能。JSP则没有这个局限,每个程序装载一次,并驻留在服务器内存为以后请求服务。另外JSP在多线程的编写与控制方面比CGI容易的多。

开发及发布

由于javaservlet具有java所有优点,因此开发起来也相对容易,java简化了对异常的处理,它的面向对象特性使开发人员的协作成为一件简单的事情。JSP技术从如下几个方面加快了动态网站的开发。

  1. 将静态页面的开发和动态内容的生成JSP中通过使用HTML或XML标记来规划、设计WEB页的布局和风格,而用JSP标记来实现动态的内容,生成动态内容的部分被封装起来运行于服务器端,这样页面布局和风格可单独编辑与调试而不影响动态内容生成。
  2. 组件的可重用。多数JSP页面通过重用与平台无关的组件javabean来完成复杂的要求,这些组件可在开发人员中重复使用。
  3. 通过标记来简化页面开发。通过JSP提供的标记,开发人员可以很容易地使用javabean组件,设置和访问他们的属性。同时JSP也允许用户自定义标记,还可以接受第三方的标记,从而可以方便地使用第三方提供的功能组件。

(3)JSP与PHP

可移植性

PHP和JSP都具有良好的可移植性。他们都能够运行在各种不同的平台上。但是需要注意的是:PHP对数据库操作的接口繁多,这样设计的初衷也许是方便用户,但是却给移植带来了麻烦。例如:对MYSQL数据库系统的操作和对Orical数据库系统的操作接口是不同的,因此如果要更换数据库系统,就得更改原码中所有涉及数据库操作的部分。

可扩展性

PHP缺少一层逻辑层。JSP可以使用javabean,ASP的背后是COM/DCOM PHP没有相对应的组件,这使得PHP的可扩展性大打折扣。

性能

很多测试表明,PHP的计算速度很慢。因此PHP不宜使用在运算较多的情况下。而JSP在这方面的表现却十分优秀。

支持

JSP技术有SUN公司的支持,而PHP却没有响应的公司支持。PHP秉承GNU风格,开放源代码,对它进行维护升级的是一些网络爱好者。因此在这一点上,JSP具有很大优势。

三、小结

由以上介绍可以看出,JSP是一种崭新的拥有其它技术所不可替代的优势的技术,所以在GO2008电子商务系统中我们选择了它。

3.1.2 平台搭建

在确定技术之后要作的就是搭建平台了,由于我们选用了JSP技术,所以我们需要安装java开发工具集(JDK)和Tomcat(网站服务器)。它们之间的关系见图3.1-1

   客户端

                图3.1-1 JSP相关环境架构图

JDK,Tomcat均可从网上免费下载,具体安装不在冗述,强调两点:

(1)CLASSPATH的配置:

安装完JDK和Tomcat后需要在CLASSPATH内配置如下内容:

CLASSPATH=安装目录\jdk 1.3\lib\tools.jar

CLASSPATH=安装目录\tomcat\lib

CLASSPATH=安装目录\tomcat\webapps

(2) 对Tomcat   Server.xml文件的配置

在Server.xml 文件内添加以下内容

<!-- Go2008 Context -->

<Context path="/go2008" docBase="e:\go2008" debug="0" reloadable="true"/>

至此,平台搭建完成,可以进入系统分析阶段。

3.2系统分析

3.2.1 用户管理系统分析:

1 需求分析:

a. 允许用户申请帐号,自由登陆;

  1. 允许用户查询忘记的密码;

2 过程分析:

功能实现

Go2008电子商务系统功能实现的关键在于用户与服务器之间的对话的建立和维持(在该系统中通过login.jsp和cookieis.jsp两个文件实现),在用户正确登陆后,服务器在客户端建立cookie,负责用户和服务器之间信息的传递(这也是购物车功能实现的关键所在),在用户访问Go2008过程中不断更新cookie内容,用户结束购物注销后撤消cookie。若用户非法退出或用户在设定时间内没有响应,系统自动撤消cookie以保证用户个人信息的安全。下面就对话的建立和维持的实现作详细介绍。

3.4.1 用户与服务器对话的建立

login.jsp

<%@page contentType="text/html;charset=GB2312"%>

<%@include file="convert.jsp"%>

//调用解决jsp下中文问题的模块,代码见附录

<%@page import="java.sql.*"%>

<%@include file="opendata.jsp"%>

//调用与数据库建立连接的模块,代码见附录

<html>

<head>

<title>会员登陆页面</title>

</head>

<body background="image/bg3.gif">

<%

 String username = request.getParameter("username");

 String date=new java.util.Date().toString();

 String password = request.getParameter("password");

 String userip=request.getRemoteAddr();

 String insertsql="";

 String selesql="";

 String shopcarID=null;

 username = convert(username);//解决中文乱码

猜你喜欢

转载自blog.csdn.net/CSDN6706/article/details/130441938