基于jspmysql的网上书店设计与实现内容摘要:
开发工具。 自从 1995年正式问世以来, Java的快速发展已经让整个 Web世界发生了翻天覆地的变化。 在早期, Java比较多的用在浏览器上,插入到网页中 (即是 Java Applet程序 ),成为最灵活、最强大的网页多媒体的载体,但由于 Java 虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点, Applet逐渐的被后起之秀 Flash所替代,但随着 Java Servlet的推出, Java在电子商务方面开始崭露头角,最新的 JSP(Java Server Page)技术的推出,更是让 Java成为基于 Web的应用程序的首选开发工具,目前的 Java技术已成为所有大型电子商务项目的必然选择。 Java 程序可以获取网络上结点的图象、声音、 HTML 文档及文本等资源,并可以对获得的资源进行处理。 例如 Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。 在编程处理上,一般先生成一个 URL类型的对象,然后用 Java中相应的方 法( method)获取该对象所代表的资源。 Structs 简介 简单的来说, Structs 是一个基于 SUN J2EE 平台 MVC 框架,很好的实现了 MVC 模式Structs。 通过一个配置文件,就可以把整个系统的各个部分联系起来。 随着 JSP 与 Servlet 技术大量应用于 Web 为基础的应用程序, Java开发人员群体认为应该以较佳之模式以提升 Web应用程序之可维护性与重新实用型。 早期 JSP规格书中曾例举两种可行之 JSP应用架构,分别为 Model1与 Model2。 在 Model1架构中, JSP直接处理 Web浏览器送来之请求,并辅以 JavaBean处理应用相关逻辑。 Model1架构单纯编写比较容易,但在 Model1中 JSP可以同时肩负 View与 Controller角色,两类程序代码有可能混杂而不易维护。 而 Model2 中将 Servlet 纳入架构中扮演前端Controller角色,将 Web浏览器送出之前请求集中送至 Servlet。 Servlet可集中管理使用者登入,权限控制,多国语言转型等前置处理,再视需求转向给对应之 JSP 处理。 Model2中采用了较佳之 MVC模式,但增加编写复杂度。 Struts只是一个 MVC框架( Framework) ,用于快速开发 Java Web应用。 Struts实现的重点在 C(Controller),包括 ActionServlet/RequestProcessor和我们定制的 Action,也为V(View)提供了一系列定制标签( Custom Tag)。 但 Struts 几乎没有涉及 M(Model),所以Struts可以采用 JAVA实现的任何形式的商业逻辑。 除此之外, Struts的优点主要集中体现在两个方面: Taglib和页面导航。 Taglib是Struts的标记库,灵活动用,能大大提高开发效率。 另外,就目前国内的 JSP开发者而言,除了使用 JSP自带的常用标记外,很少开发自己的标记,或许 Struts是一个很好的起点。 关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。 通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。 尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。 Servlet 技术简介 Servlet是使用 Java Servlet 应用程序设计接口编写的 Java 程 序。 它源于请求 /响应模式,如它可以接受来自客户端浏览器的 Http请求,并产生一个响应,然后将这个响应发送到客户端。 Servlets有不少的优点: 效率:使用传统的 CGI 编程,对于每个 HTTP 请求都会打开一个新的进程,这样将会带来性能和扩展性的问题。 使用 Servlets,由于 Java VM( Java 虚拟机)是一直运行的,因此开始一个 Servlet只会创建一个新的 Java线程而不是一个系统进程 功能强大 相对于传统的 CGI,由于有着广泛的 Java API 支持, Servlets 可做到传统CGI很困难甚至不能做的事。 Servlets可轻松做到共享数据、维护信息、跟踪 session等。 安全 Servlets 通过 Servlet 引擎在一个受到限制的环境下运行,与 Web 浏览器对applet的限制相似。 这可以避免恶意 Servlets的破坏。 花费 对于个人或者流量不大的站点来说,有不少“免费”或者低价的 web服务器可供选择。 如果你已经有一个 web服务器,你可以很容易加入 Servlet技术的支持,而且价格很便宜。 可移值性 Sevlet API得益于 Java平台,这是一个相当简单的 API, 几乎被所有的 Web浏览器支持,因此 Servlets可以轻松地在平台间移植,而且通常都无需作任何的修改。 Servlet通过创建一个框架来扩展服务器的能力,以提供 Web上进行请求和响应服务。 当客户机发送请求至服务器时,服务器可以将请求信息发送给 Servlet,并让 Servlet建立起服务器返回给客户机的响应。 当启动 Web服务器或客户机第一次请求服务时,可以自动装入 Servlet。 装入后, Servlet 继续运行直到其它客户机发出请求。 Servlet 的功能涉及范围很广。 Struts 优缺点 优点有 : 1. 实现 MVC模式,结构清晰 ,使开发者只关注业务逻辑的实现 . 2. 有丰富的 tag可以用 ,Struts的标记库 (Taglib),如能灵活动用,则能大大提高开发效率。 另外,就目前国内的 JSP开发者而言,除了使用 JSP自带的常用标记外,很少开发自己的标记,或许 Struts是一个很好的起点。 3. 页面导航 .页面导航将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。 通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。 尤其是当另一批开发者接手这个项目时,这种优势 体现得更加明显。 4. 提供 Exception处理机制 . 5. 数据库链接池管理 6. 支持 I18N 缺点 : 一、 转到展示层时,需要配置 forward,每一次转到展示层,相信大多数都是直接转到 jsp,而涉及到转向,需要配置 forward,如果有十个展示层的 jsp,需要配置十次 struts,而且还不包括有时候目录、文件变更,需要重新修改 forward,注意,每次修改配置之后,要求重新部署整个项目,而 tomcate这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的系统,这样的操作简单不可想象。 现在就是这样,几十上百个人同时在线使用我们的系统,大家可以想象一下,我的烦恼有多大。 二、 Struts 的 Action必需是 thread- safe方式,它仅仅允许一个实例去处理所有的请求。 所以 action用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。 三、 测试不方便 . Struts的每个 Action都同 Web层耦合在一起,这样它的测试依赖于 Web容器,单元测试也很难实现。 不过有一个 Junit的扩展工具 Struts TestCase可以实现它的单元测试。 四、 类型的转换 . Struts的 FormBean把所有的数据都作为 String类型,它可以使用工具CommonsBeanutils进行类型转化。 但它的转化都 是在 Class级别,而且转化的类型是不可配置的。 类型转化时的错误信息返回给用户也是非常困难的。 五、 对 Servlet的依赖性过强 . Struts处理 Action时必需要依赖 ServletRequest 和ServletResponse,所有它摆脱不了 Servlet容器。 六、 前端表达式语言方面 .Struts集成了 JSTL,所以它主要使用 JSTL的表达式语言来获取数据。 可是 JSTL的表达式语言在 Collection和索引属性方面处理显得很弱。 七、 对 Action执行的控制困难 . Struts创建一个 Action,如果想控制它的执行顺序将会非常困难。 甚至你要重新去写 Servlet来实现你的这个功能需求。 八、 对 Action 执行前和后的处理 . Struts处理 Action的时候是基于 class的hierarchies,很难在 action处理前和后进行操作。 九、 对事件支持不够 . 在 struts中,实际是一个表单 Form对应一个 Action类 (或DispatchAction),换一句话说:在 Struts中实际是一个 表单只能对应一个事件, struts这种事件方式称为 application event, application event和 ponent event相比是一种粗粒度的事件。 Struts 的工作流程 下图是 Struts 的工作流程,所有的请求都提交给 ActionServlet 来处理。 图 3251 ActionServlet 是一个 FrontController,它是一个标准的 Servlet,它将 request 转发给 RequestProcessor来处理, ActionMapping是 ActionConfig的子类,实质上是对 ,从中可以取得所有的配置信息 RequestProcessor 根据提交过来的 url,如 *.do,从 ActionMapping 中得到相应的ActionForn和 Action。 然后将 request的参数对应到 ActionForm中,进行 form验证。 如果验证通过则调用 Action的 execute()方法来执行 Action,最终返回 ActionFoward。 ActionFoward是对 mapping中一个 foward的包装,对应于一个 url ActionForm 使用了 ViewHelper 模式,是对 HTML 中 form 的一个封装。 其中包含有validate方法,用于验证 form数据的有效性。 ActionForm是一个符合 JavaBean规范的类,所有的属性都应满足 get 和 set 对应。 对于一些复杂的系统,还可以采用 DynaActionForm来构造动态的 Form,即通过预制参数来生成 Form。 这样可以更灵活的扩展程序。 ActionErrors是对错误信息的包装,一旦在执行 action或者 常,即可产生一个 ActionError并最终加入到 ActionErrors。 在 Form验证的过程中,如果有 Error发生,则会将页面重新导向至输入页,并提示错误。 Action是用于执行业务逻辑的 RequsestHandler。 每个 Action都只建立一个 instance。 Action 不是线程安全的,所以不应该在 Action 中访问特定资源。 一般来说,应改使用 Business Delegate 模式来对 Business tier进行访问以解除耦合。 Struts提供了多种 Action供选择使用。 普通的 Action只能通过调用 execute 执行一项任务,而 DispatchAction 可以根据配置参数执行,而不是仅进入 execute()函数,这样可以执行多种任务。 如 insert,update 等。 LookupDispatchAction 可以根据提交表单按钮的名称来执行函数。 Hibernate 简介 随着计算机应用软件的发展,应用程序逐渐由单层体系结构发展为多层体系结构。 其中,三层结构是目前典型的一种应用软件结构,如图 1左。 图 1 表述层:提供与用户交互的界面,如 GUI(图形用户界面), web页面等; 业务逻辑层:负责各种业务逻辑,直接访问数据库,提供对业务数据的保存、更新、删除和查询操作; 数据库层:负责存放管理应用的持久性业务数据 三层结构的特点是:所有下层向上层提供调用的接口,具体实现细节对上层透明。 层与层之间存在自上而下的依赖关系,即上层会访问下层的 API,但下层不依赖于上层。 Hibernate顾名思义冬眠的意思,相信它的创造者的用意在于用这个工具将数据库连接持久化层冬眠,关于 Hibernate网上争论很多,有人说其为工具,有人说其为框架,我相信一个人有一个人理解问题的角度,只要处理问题的方法正确就可以了。 Hibernate是采用 ORM映射机制的持久层开发工具,它是 JAVA应用和关系数据库之前的桥梁,负责 JAVA对象和关系数据之间的映射。 内部封装了 JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问 API,在 JAVA应用中使用到 Hibernate包含如下步骤。 Hibernate配置文件 3. 创建对象-关系-映射文件 HibernateAPI编写访问数据库的代码 如果想了解 Hibernate或者是要学习它的人必须要首先了解两个比较重要的概念: POJO:在 Hibernate 中理解为数据库表所对应的 Domain Object,如果从子面上理解就是无格式普通 JAVA 对象,简单的理解就是一个不包含逻辑代码的值对象。 从数据层面上看, POJO作为数据实体的对象化表现形式,也。基于jspmysql的网上书店设计与实现
相关推荐
加入脚本片段和 JSP 标记 (Tag)构成 JSP 网页 (*.jsp)。 Java Server Page 技术为创建显示动态生成内容的 web 页面提供了比较简便的方法。 Java Server Page 作为 Java 家族的一员,继承了 Java 的优点,即可以跨平台运行的特性,也就是进行一次编译,可以在多种不同平台运行。 在国外,将 Java Server Page 技术
各类网站如雨后春笋般出现在互联网上,音乐网站是其中较为流行和热门的一种。 从音乐网站上发展而来的网络音乐是一种全新的音乐模式,它突破了传统音乐的制作方法和传播模式的局限,更加贴近人们的生活。 音乐网站是网络音乐的发展平台。 过去,音乐网站功能较为单一,但随着网络技术的发展,用户对音乐网站的要求逐步提高,音乐网站由此也逐渐出现了更多采用较为优越的开发工具 (如 ASP、 JSP、
ncluded in t he Cent r al Soviet ar ea count y, st rive f or t o 1000 I ndust r y m ilon f und t o help t he poor . I do t his a f ew m ont hs t o t he gr assr oot s wor k t o r esearch, m ade indust
一个独立的站点 ,提供的功能有限 ,用户不能详细的了解商品的有关信息 ,不能快捷地查询商品 ,无法满足学生实际交易中的需求。 校园二手物品交易平台为在校学生提供一个供需平台 ,学生可以将自己不用的东西放在网上 ,也可在网上找到自己需要的东西 ,物美价廉 ,达到双赢 . 构建高校二手交易平台响应了党的十七大“节能 减排”的号召,体现了可持续发展的要求,将二手商品充分合理的利用,不仅减少了资源浪费
dows 7; ( 2)开发工具: eclipse; ( 3)编程语言: Java 语言; 可行性的分析 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。 因此
套接字类)提供的重要函数有 getIAddress( ), getPort( ), getInputStream( ), 和 close( )。 分别产生用于获得信宿机的地址、信宿机端口号、获得输入流、获得输出流、关闭套接字。 ServerSocket 类(服务器套接字类)的重要函数有:getIAddress( ), getLocalPort( ), accept( )和 close( )