J2EE环境与程序设计_第1页
J2EE环境与程序设计_第2页
J2EE环境与程序设计_第3页
J2EE环境与程序设计_第4页
J2EE环境与程序设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上J2EE环境与程序设计JAVA变量:必须先声明后使用 (float a=3.4f; double b=3.4; )字符串变量 (实际上是String类的一个实例)(String s1=Hello, s2= Java, s3;s3=s1+s2; /s3=Hello Java) 如果字符串与其他类型变量进行“+”运算,系统将自动将其他类型转换为字符串。字符串数值: int i= Integer.parseInt(123); 数值字符串:String s=String.valueOf(value);其中value为任意一种数字类型。l 运算符 (2/3=0; 10+;是错的

2、;9.5%2=1.5 ):每左移一位,右边补0,最高位移出丢弃 byte a=32; / a: int i=a2; / a:每右移一位,最高位由原来的最高位补充( 正数补0,负数补1) :0填充右移(无符号右移) 表达式:关系表达式的运算结果是逻辑值:true、false.break语句:从switch语句中退出;强行退出一个循环;当作goto语句来用,用法: break 标签;标签可标识控制需要转换到的任何有效语句(块) 跳出整个循环,整个switch块,continue语句:结束本次循环,跳至下一次循环;continue 标签; (继续标签处循环) 本次循环体内不执行continue语句后

3、的其它语句,但下次循环还会执行对象是指一组属性以及这组属性上专用操作的封装体类的概念:类是对具有相同属性和相同操作的一组相似对象的定义.类是对象的抽象,对象是类的实例。Or 是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,它由一个类名、一组属性和一组操作构成类的作用是创建对象。类是创建对象的模板,对象是类的一个实例。属性:是对象的特征,包括对象和行为 静态属性“状态”,用变量表示 动态属性“行为”,用方法表示类中的“方法”实例方法: 实例方法既可以操作实例变量,也可以操作类变量; 实例方法在创建类对象后才分配入口地址; 实例方法可以被类创建的任何对象访问,必须

4、通过对象来调用;实例方法可以调用其它方法(包括类方法)。(2)类方法: 用static修饰的方法是类方法,也叫静态方法; 类方法只能操作类变量; 类方法在类被加载到内存后就分配了入口地址; 类方法可以被类创建的任何对象调用,也可以通过类名来调用,类方法只能调用该类的类方法。类的访问控制有2种:public和default.public类:可以在任何一个包中的任何一个类中被访问和继承.default类:只能在同一个包中被其它类所访问和继承构造函数n 作用:构造函数是在创建对象时(new语句)自动调用的函数,其作用主要是用于初始化实例变量.n 特点:构造函数名与类同名,构造函数不能指定类型(包括v

5、oid),也无任何返回值.一个类可以有多个不同的构造函数.如果没有定义构造函数,系统将会自动为类添加一个默认的构造函数(不带参数,执行空操作).一旦自定义了构造函数,默认的构造函数将关闭,系统转向调用相应的构造函数创建对象。n 重载同一个类中的2个或以上的方法(函数)可以有同一个名字,只要它们的参数声明不同即可. (如类型不同、个数不同)n 系统能够根据不同情况自动调用一个合适的方法函数。重载:同一个类中的2个或以上的方法(函数)可以有同一个名字,只要它们的参数声明不同即可. (如类型不同、个数不同)系统能够根据不同情况自动调用一个合适的方法函数。继承 继承是一种由已有类创建新类的机制.继承是

6、类间的基本关系,是子类共享父类(Java又称为超类,C+称为基类)中定义的数据和方法的机制.子类除了继承其父类(或祖先类)的属性和操作外,还可以定义自己特有的属性和操作,也可以对父类(或祖先类)中的操作进行重新定义。Java使用接口(interface)来克服单多继承缺陷接口 接口(interface)只是说明类应该做什么,但不指定应该如何去做. (类比USB接口)接口只有方法名没有方法体,这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能).Java接口不能有构造器(构造函数).Java可使用接口来实现多继承。接口不一定要有方法,也可以全部是常量,甚至是没有任何方法和

7、属性接口的多重实现n Java继承是单继承(子类只有一个直接父类);n 但是一个类可以实现一个接口,也可同时实现另一个接口。J2EE(J2EE是一系列的技术规范与指南. 成为企业级开发的工业标准和首选平台。三层架构的组成:n 表示层用户界面部分(对应客户端)n 业务层应用逻辑部分(对应服务器)n 数据层数据访问部分(对应数据库)优势: 瘦客户端:计算被集中至服务器端,使性能提高成为可能. 易维护:每一层可以被单独改变,而无需其它层的改变. 降低了部署与维护的开销,提高了系统可扩展性和伸缩性。三层结构示例P124 三层架构的组成,各层的作用,采用的相关技术传统的Web应用B/S模式表现层(Str

8、uts)业务逻层(Spring)持久化层(Hibernate)(Web服务器专门处理客户端HTTP请求并传送页面使浏览器可以浏览。常用的Web服务器:Windows平台:IIS,UNIX和LINUX平台: Apache、W3C、NCSAWEB应用基本结构(WEB-INF/web.xml)WEB-INF是Java的WEB应用的安全目录。客户端无法访问,只有服务端可以访问。想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。WEBWeb服务器专门处理客户端HTTP请求并传送页面使浏览器可以浏览动态网站含有服务器端代码(提供的服务是依靠Web应用程序)实现的,

9、如留言板、论坛、新闻、博客等; Web应用程序(B/S应用程序)以动态网站为运行载体;Request(请求)request对象封装了客户端提交的数据信息。用request对象的相关方法可获得提交的各种数据Reponse(响应) response对象代表服务器对客户端请求的响应,用于向客户端发送数据。URL(Universal Resource Locator,统一资源定位器) 是Internet上标准的资源的地址 ,每个站点或站点上的每个文件(网页及所有资源文件)都有一个唯一的地址,浏览器是通过URL来定位目标信息的。URL格式: 协议类型:/服务器地址(必要时需加上端口号)/路径/文件名 协

10、议名:/主机名:端口号/文件夹名/文件名网址:包括 IP地址和域名地址 IP是主机的地址,URL是网站资源的地址域名(Domain Name ):(一台主机可以有多个域名)是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称 。n 主机(Host): Internet上的计算机,此处指服务器。n 虚拟主机:在一台主机上可建立多个网站,这些网站的存放方式称为“虚拟主机”,通过Web服务器上设置“主机头”进行区分。 (如果直接输入IP,则Web服务器将打开默认网站。)n 域名与主机的关系:多对一n 域名的作用:1)方便记忆IP地址;2)作为主机头信息识别请求的网站浏览器、WE

11、B服务器的作用Web服务器:把用户通过URL访问的网页传送到浏览器端。对动态网页,先解释执行服务器端程序代码生成静态网页代码,再传送给客户端浏览器。浏览器:解释html代码生成用户看到的网页最常用的Web服务器:Apache,IIS,TomcatDNS(域名系统) 因特网上作为域名和相互映射的一个,能够使用户更方便的访问,而不用去记住能够被机器直接读取的IP数串。主机名到IP地址的有两种方式: 1)静态映射, 2)动态映射,HTTP()http协议请求由三部分组成,分别是:请求行、消息报头、请求正文。 协议的作用是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网

12、络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是客户端浏览器或其他程序与器之间的应用层通信协议. HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。请求的方法(GET、POST、PUT、DELETE)协议中共定义了八种方法(有时也叫“动作”

13、)来表明Request-URI指定的资源的不同操作方式:GET 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中。 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 PUT 向指定资源位置上传其最新内容。 DELETE 请求服务器删除Request-URI所标识的资源。 HTMLHyper Text Markup Language超文本链接标记语言.HTML语言使用标签来指明文档的不同内容.标签描述了文档的结构,它向浏览器提供该文档的格式化信息,以传送文档的外观特征.用

14、HTML语言写的页面是普通的文本文档,不含任何与平台和程序相关的信息,它们可以被任何文本编辑器读取图片标签: 设定图框:图形位置调节 (左上角留空):图形附注: 超链接标签: 链接文字点击“链接文字”可以到达指定的资源地址表格form标签 get方法(默认) 数据量少,会在地址栏显示数据 post方法数据量多 JSPJSP(Java Server Page)将Java与HTML相结合,是一种实现静态Html和动态Html混合编码的技术。 JSP最终会被转换成标准的Servlet(JSP的实质仍然是servlet)。 JSP的目的在于简化表示层的表示n 服务器端脚本语言,是以Java和Servl

15、et为基础的动态网页生成技术,它的底层实现为Servlet.n JSP页面由HTML代码和嵌入其中的Java代码所组成.n 在页面被客户端请求以后,服务器对Java代码进行处理,然后将生成的HTML页面返回给客户端浏览器.n 面向对象,跨平台,克服了Servlet缺点,通常和JavaBean结合,将界面表现和业务逻辑分离。JSP基本结构JSP和Servlet区别通俗的讲,JSP是往HTML里嵌Java代码,Servlet是往Java代码里嵌HTML元素。也就是说,JSP将业务层混合到表示层中,而Servlet将表示层混合到业务层中。Servlet用来写业务层是很强大的,但是对于写表示层就很不方

16、便。JSP则主要是为了方便写表示层而设计的,当然也可以写业务层。根据SUN的推荐,JSP应该仅仅存放与表示层有关的HTML内容,而将所有的数据计算,数据分析,数据库连接等业务处理在JavaBean中,并通过JSP调用,实现两层的整合(JSP+JavaBean)。 两者相似之处:均基于Java技术,都继承了Java的所有特性,且都可以使用JavaAPI;工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类;两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接两者区别:编程方式不同:Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简

17、单容易;应用目的不同:Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端;JSP真正意义:可将界面设计和业务逻辑设计分离JSP和Servlet关系由于HttpServlet大多是用来响应HTTP请求,并返回Web页面,所以不可避免地,在编写servlet时会涉及大量的HTML内容,这给servlet书写效率和可读性带来很大障碍。JSP使用HTML的书写格式,在适当的地方加入Java代码片断,将程序员从复杂的HTML中解放出来,更专注于业务处理方面的内容。JSP在首次被访问的时候被应用服务器转换为servlet,在以后的运行中,容器直接调用这个servlet,

18、而不再访问JSP页面。JSP执行过程JSP执行过程JSP页面中的HTML标记符号(静态部分)交给客户端浏览器直接显示。服务器端执行之间的Java程序(动态部分),并把执行结果交给客户端的浏览器显示。 服务器端还要负责处理相关的JSP标记,并将有关的处理结果发送到客户的浏览器。当多个客户端请求同一个JSP页面时,Tomcat服务器会为每个客户启动一个线程,它将负责响应相应的客户端请求。 JSP调用Javabean方法答::用于声明和实例化javabean类. :用于设计javabean的值. :用于获取javabean中特定propoerty的值MVC模式MVC模式是模式-视图-控制器”,MVC

19、把一个应用的输入、处理、输出流程分成模型层、视图层、控制层等三个层JSP页面的基本组成:脚本元素(ScriptingElement)(用来嵌入Java代码,使之成为转换得到的Servlet的一部分)指令(Directive)(为页面提供全局信息,如导入语句、错误处理页面等)声明(对网页全局变量和方法的说明)表达式(将表达式格式化包含在页面输出中的一个串)行为(Action)(引入现有的组件或控制JSP引擎的行为)JSP脚本元素 练习:1:1到100的和=50502:随机产生一个 1100 的整数 i 如果 i=90,则显示蓝色太好了;其他,则显示黑色还不错。JSP指令元素(从JSP向Web容器

20、发送的消息,它用来设置页面的全局属性).JSP指令格式为: page指令 : include指令 JSP动作组件(一些XML语法格式的标记,用来控制Web容器的行为。):在页面中包含一个文件(动态或静态)。:把请求转到另一个新的页面(重定向)。:在动作组件中引入参数信息。:设置JavaBean的属性。:输出某个JavaBean的属性。:寻找或者实例化一个JavaBean。:在页面中添加Java Applet小程序。练习:网站时钟日期:简易购物车Servlet(Servlet不是线程而是一个Java对象, Servlet不是独立的应用程序,没有main方法. Servlet不是由用户调用,而是由

21、Servlet容器调用)什么是ServletServlet是一种独立于OS和协议的服务器端Java应用程序.Servlet能动态响应客户端请求,生成动态的Web页面,从而扩展服务器的功能.Servlet由Servlet容器管理(Servlet的运行环境),Tomcat就是一个常用的Servlet容器。1;是一些运行于Web服务器端的Java小程序. 2:使用HTTP协议与客户端进行通讯 .3:能够动态产生(页面)内容,用来扩展Web服务器功能. 4:继承了Java的所有特性. (跨平台/多线程/OO等) 5:替代其它Web服务器编程模式(如CGI,ISAPI)。Servlet工作流程客户端(浏

22、览器)向Web服务器发送一个基于HTTP协议的请求.Web服务器接收到该请求,并将请求交给Servlet容器处理.Servlet容器根据Servlet配置来查找或创建Servlet实例,并执行该Servlet,Servlet容器必须把客户端请求和响应封装成Servlet请求和响应对象传给Servlet.Servlet使用请求对象获取客户端的信息,比如IP地址、请求的参数等,并执行特定业务逻辑;使用响应对象向客户端发送业务执行的结果.Servlet处理完请求后,Servlet容器要保证Servlet的响应能够发送到客户端(flush),最后返回到Web服务器。Servlet特点 高效 移植性好

23、功能强大Servlet生存周期的三个阶段 初始化init() (一般为空) 请求处理service() 终止destroy()StrutsStruts2的处理流程StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由/*指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。与Struts1不同,

24、Struts2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的。为应用指定多个struts配置文件一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。下面的struts.xml通过元素指定多个配置文件:Hibernate表现层(Struts) 业务逻辑层(Spring) 持久化层(Hibernate)如何进行对象关系数据库的匹配?什么是O/R Mapping?( 对象-关系映射)对象-关系映射是一门非常实用的工程技术,它实现了Java应用中的对象到关系数据库中的表的自动的(和透明的)持久化,使用元数据(

25、meta data)描述对象与数据库间的映射O/R Mapping的优点 提高生产率 可维护性 更好性能 厂商独立性Hibernate概述 Hibernate是非常优秀、成熟的O/R Mapping框架。它提供了强大的对象和关系数据库映射以及查询功能。优势 开源(LGPL) 成熟 流行 自定义 API JBoss 将用Hibernate3实现Entity BeansP152 Hibernate开发步骤 如何使用Hibernate实现对象持久化的过程1创建Configuration对象。在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析2:创建SessionFactory对象

26、。通过创建好的Configuration对象可以创建一个sessionFactory对象的实例,同时是生成Session对象实例的工厂,他在整个应用中应该是唯一的。3:创建Session对象。Session对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比JDBC中的Connection对象丰富很多。4:开始一个事务。在Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤5:进行持久化操作。在这个步骤中可以读取或者保存Java对象。6:结束事务。在操作完成之后还要进行显式的结束事务的操作。7:关闭Session。类似于释放数据库的

27、连接。比较一下sessionFactory中的opensession()和getcurrentsession()方法getCurrentSession创建的session会和绑定到当前线程,而openSession不会。getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭持久化类和关系数据库的映射: P158 编写ORM文件,能够将实体类、表完成映射定义。Hibernate配置的两种方法:属性文件(perties)。 Xml文件(hibernate.cfg.xml)。Hibernate核心接口Hiberna

28、te查询机制:标准化对象查询Criteria Query): Hibernate语言查询(Hibernate Query Language,HQL): Native SQL Queries(原生SQL查询)HQL查询: HQL用面向对象的方式生成SQL HQL支持所有的关系数据库操作1:查询用户名以“J”开头的所有用户。 Query query = session.createQuery(from User user where like J%);List users = query.list();2:从User和Group中查找属于“admin”组的所有用户。Query

29、query = session.createQuery(“from User user where =admin”);SpringSpring是一个开源的控制反转(Inversion of Control ,IoC)、依赖注入(Dependency Injection,DI)和面向切面(AOP)的容器框架.它的主要目的是简化企业级应用开发.Spring IOC (控制反转 )控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。Spring就是一个IOC容器。IOC与D

30、I,说的是一回事,但DI这个名词更能表达这种设计模式的思想实例化spring容器的两种方式:1:在类路径下寻找配置文件来实例化容器 2:在文件系统路径下寻找配置文件来实例化容器三种实例化bean的方式:1.使用类构造器实例化 2.使用静态工厂方法实例化 3.使用实例工厂方法实例化依赖注入 (DI) 的方式:使用构造器注入 使用属性setter方法注入 使用Field注入(用于注解方式)注入依赖对象可以采用手工装配或自动装配手工装配的两种编码方式: 1. 在xml配置文件中,通过在bean节点下配置 2. 在java代码中使用Autowired或Resource注解方式进行装配。实验一思考题 创

31、建和发布Web应用程序1:与通过内置对象request获取请求数据相比,WordUseBean.jsp页面增加了什么类型的标签?分析标签里的内容和作用。答:WordUseBean.jsp页面增加了标签。是为了创建一个JavaBean的实例。包括:id: JavaBean对象的名称。Scope: JavaBean的范围。Class:指定文件位置。2:请在前台分别输入数值、西文、中文字符串,后台是否得到正确的结果?答:后台能显示正确的结果。3:请注释掉语句request.setCharacterEncoding(UTF-8);重复上面的输入,你会看到什么现象?你会得到什么结论?答:出现乱码。req

32、uest.setCharacterEncoding(UTF-8)编码部分不可以省略。1:总结用内置对象request与用JavaBean传递数据各有何特点?答:当用户的信息需要传递到新的界面时,我们需要不停地将用户的信息保存到request对象中,而且在另外的界面中又要将request中的信息取出来,这样的过程比较繁琐,而有了JavaBean,就可以简化上述的过程,因为JavaBean将信息全部封装在User对象中,这样,我们就可以只存取request一次即可。2与JSP比较Servlet处理静态和动态代码有何不同?由此引申说明后台响应大多采用Servlet的原因;答:所有的JSP元素都是先由

33、服务器进行处理的,其处理过程是将JSP页面转化成Servlet,执行Servlet即可,因为JSP无法完全传送给浏览器。此外,JSP容器一般来说是以Servlet的形式来处理JSP页面,通过配置Servlet可以处理JSP的页面。3在MyEclipse集成开发环境下,创建Servlet时为什么使用向导?用创建普通类的向导是否可行?答:向导可以自动配置web.xml等文件。她是可以手动创建的,使用的时候还要更改web.xml文件中的servlet-name和servlet-mapping等相关属性,不是很方便。实验二思考题 使用Struts快速实现Web开发1.Struts完成html form

34、中的input元素值到Bean属性值填充需要注意什么?答:值为空,不然就会出现异常。2Struts Action的作用是什么?答:Struts Action可以调用某一个java类的其中的一些方法进行数据处理,之后把处理的结果放在request中,至于最后的确定的结果返回给result. 3.视图的作用是什么?如何在视图中显示Action对象中的Bean属性值?答:(1)作用:隐藏数据的复杂性;有利于控制用户对表中某些列的访问;使用户查询变得简单。(2)先在action类中给出属性的get方法,在页面上用struts标签即可.或者是用request(用请求转发),session.applica

35、tion来setAttrbulite,在页面用或者OGNL表达式类获取。4Struts枚举标签中如何引用对象的值?答:用标签来引用。实验三思考题 使用Hibernate快速实现持久层处理1Hibernate主要功能是什么?答: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操作数据库。可以在Java的客户端程序使用;可以在Servlet/JSP的Web应用中使用;也可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,通过这些接口,不仅可以对持久

36、化对象进行存取,还能够进行事务控制。2对象与关系数据库表中记录的映射定义文件的作用是什么?答:易读,并且可以手工修改。3如何在映射定义文件中描述一对多、多对一的关系?答:一对多双向关联的映射方式: 在一的一端的集合上采用标签,在多的一端加入一个外键 ,在多的一端采用标签 多对一关联映射原理:在多的一端加入一个外键,指向一的一端,在多的一端采用如下标签映射: 4Hibernate会话工厂类的作用是什么?答:1,用于管理Hibernate会话(session)的对象,所以,最简单的理解,你可以把sessionFactory想想成里面有一个DataSource; 2,这个对象创建了,hibernat

37、e才真正和数据库连接上了。即SessionFactory维护着所有连接对象已经连接对象的分配和销毁; 3,SessionFactory是线程安全的,并且创建和销毁需要消耗比较大的资源,所以整个应用里面针对一个数据库只需要一个SessionFactory即可; 4,SessionFactory管理着配置在其中的映射对象的解析数据,动作监听器,NamedQuery等大量信息; 5,SessionFactory里面有一个二级缓存,可以提供更大生命周期的缓存策略;实验四思考题 使用Spring快速实现Web开发1Spring主要功能是什么? 答:依赖注入和事物管理2Spring配置文件中,bean的s

38、cope属性取值prototype,singleton有什么区别?答:singleton 是单例的,线程是不安全的,变量是共享的,Spring IOC容器中只会存在一个共享的bean实例。 Prototype是非单例的,线程很安全,有独立的bean,每访问一次控制器都会new一个新的。3Action、Service、DAO类之间的协作关系是如何实现的?答: DAO是底层与数据库直接交互的部分,Servive是又对DAO进行了一次封装,Service又是暴露给action的部分。就是action 里面调用Service,而 Service又调用 DAO。4HTML中的FORM INPUT元素名称

39、与Action类中的属性名称的对应关系是什么?为什么?答:HTML中的FORM INPUT元素名称是Action类中的属性的属性,为了便于对数据的封装。实验八思考题 图书在线销售系统(二)1、简述BookAction.java的browseBookPaging方法中(粗体下划线标出的代码),通过service层取得本页要显示的图书信息的实现思路。答:bookService.getBookByCatalogidPaging(catalogid, currentPage, pager.getPageSize();表示:在BookActoin.java属于表现层依赖于service层,在browse

40、BookPaging()调用service层中的bookService类中的getBookByCatalogidPaging(catalogid, currentPage, pager.getPageSize()方法,而bookService层中的 getBookByCatalogidPaging(catalogid, currentPage, pager.getPageSize();方法又依赖于Hibernate层中的BookDAO类。最终由BookDAO类中的 getBookByCatalogidPaging(catalogid, currentPage, pager.getPageSiz

41、e();方法去数据库中查询本页要显示的图书的信息,然后返回给service层,然后service将查询结果返回给struts层中的BookAction类中的browseBookPaging()方法,然后browseBookPaging()方法返回SUCCESS字符串,然后在struts配置文件中,根据结果返回的SUCCESS字符串,将结果显示在browseBookPaging.jsp页面中。2、checkout action中购物车信息获取并存储为订单的实现思路。答:在struts.xml配置文件中action的name=”checkout”的action首先会到shoppingaction.

42、java类中去执行checkout()方法,在checkout()方法中首先要获取user和cart对象,如果用户和购物车任何一个为空,就返回error,在struts.xml中根据返回的error结果进行调用login.jsp页面,如果用户和购物车不为空,就会创建一个订单对象,然后调用orderService类中的saveOrder()方法,orderService类依赖于DAO层的orderDAO类,然后orderService类中的saveOrder()方法就调用orderDAO类中的saveOrder()方法,在orderDAO类中的saveOrder()方法就把这个订单存储在数据库中

43、去。然后在shopping.java类中的checkout方法就返回success字符串,struts.xml配置文件根据返回的success字符串,然后去调用checkout_success.jsp页面,最终在checkout_success.jsp页面显示订单添加成功。实验八1、实现图书分页显示功能。2、实现购物车中的商品结算功能。1、实现分页信息处理类org.apex.bookstore.util.Pagerpackage org.apex.bookstore.util;public class private int currentPage;private int pageSize=3

44、;private int totalSize;private int totalPage;private boolean hasFirst;private boolean hasprevious;private boolean hasNext;private boolean hasLast;public Pager(int currentPage,int totalSize)this.currentPage=currentPage;this.totalSize=totalSize;public int getCurrentPage() return currentPage;public voi

45、d setCurrentPage(int currentPage) this.currentPage = currentPage;public int getPageSize() return pageSize;public void setPageSize(int pageSize) this.pageSize = pageSize;public int getTotalSize() return totalSize;public void setTotalSize(int totalSize) this.totalSize = totalSize;public int getTotalPage() totalPage=totalSize/pageSize;if(totalSize%pageSize!=0)totalPage+;return totalPage;public void setTotalPage(int totalPage) this.totalPage = totalPage;public boolean isHasFirst(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论