导航:首页 > 安装方法 > 三层架构功能方法写在哪里

三层架构功能方法写在哪里

发布时间:2022-02-02 02:06:22

1. 2图示三层架构并说明其特点如何实现每层实现什么功能

2.2.1 WAP工作原理 作为开放性的全球规范,WAP可以使移动用户利用无线电设备方便地访问或交互使用Internet应用信息和服务。前文述及,在Internet中,一般的协议要求发送大量的主要基于文本的数据,而标准Web内容很难在移动电话、寻呼机之类移动通信设备的小尺寸屏幕上显示。同时,在用户单手持机的情况下,屏幕间的内容切换也很不方便,并且HTTP和TCP/IP协议也没有提供针对无线网络的非连续的信号覆盖、长时间的延时以及对有限带宽所进行的优化处理。在Internet中,HTTP协议不是以压缩的二进制方式,而是以效率不高的文本格式发送标题和命令。因此,如果在无线电通信服务中使用普通 Internet协议,则会导致速度慢、成本高且难以大规模应用等问题,而且无线电传输的延时还会造成其他一些问题。 为了解决此类问题,WAP进行了很多优化处理。比如,利用二进制传输经过高度压缩的数据,并对长延时和中低带宽进行优化。WAP的会话功能可以处理不连续覆盖的问题,并能自动地在IP不可用时改用其他优化协议来进行各种信息传输。通过使用WML语言编写网页,WAP还解决了Internet页面不能在移动通信设备上显示的问题。运用WML编辑的网页可在手机的微浏览器上产生按钮、图示及超链接等功能,并可提供信息浏览、数据输入、文本和图像显示、表格显示等功能,大大减小了在移动设备上浏览网页内容的复杂程度。 另外,WAP通过加强网络功能来弥补便携式移动设备本身的缺陷,工作时尽可能少地占用移动通信设备的资源,比如CPU、内存等。与Web对Internet的作用一样,WAP在应用层上隐藏了GSM的复杂性,给用户提供了类似于普通Web页面的友好性。WAP还通过使用类似于javascript的脚本语言WMLScript,来使移动通信设备先将信息进行处理后再发给服务器。WAP还通过无线电话应用WTA来实现呼叫控制等诸多电话功能。 WAP标准下的移动终端均配备了一个微浏览器,该浏览器采用了一种类似于卡片组的工作方式。用户可以通过卡片组来浏览移动网络运营商提供的各项Web业务。工作时,移动终端用户首先选择一项业务,该业务会将卡片组下载到移动终端,然后用户就可以在卡片之间往返浏览,并可进行选排或输入信息,以及执行所选择的工作等。而且,浏览到的信息可以高速缓存,以便供以后使用,卡片组也可以高速缓存并可做成书签以备快速检索之用。该浏览器同时还对电子名片、日历事件、在线地址簿和其他类型内容的格式提供了相应支持。 2.2.2 Internet与WAP的系统架构 为了说明WAP的系统架构,我们先来分析一下普通Internet中Web服务器的工作方式和工作原理。 在图2.2所示的WWW模型中,客户向URL所指定的Web服务器发出 一个请求,Web服务器收到该请求后,经处理即返回相应的内容至客户端。这个过程中,双方是按照HTTP协议进行交互的。客户端发出一个以HTTP开头的URL请求时,Web服务器端处理该请求的程序可能是CGI程序、静态网页,也可能是Servlet程序,甚至可能是其他服务器端的程序,但它们都是以HTML格式将相应的内容返回给客户,这样,客户就可以在浏览器上看到返回的具体内容。 图2.2 WWW模型 WWW模型(图2.2)还同时说明了建立普通应用环境所需的必要配置,主要包括以下几个方面: (1) 标准命名模型。WWW上所有的服务器和内容都是通过Internet标准的信息指定方法进行命名的。 (2) 内容键入。主要指URL的键入,WWW为此定义了若干特定的类型,允许网络浏览器在此基础上进行正确的处理。 (3) 标准内容格式。所有的网络浏览器均支持一组标准的内容格式,包括超文本标记语言HTML、Java描述语言以及其他格式。 (4) 标准协议。标准网络协议允许任何网络浏览器连接到任何网络服务器上。WWW体系中最常用的协议是HTTP协议。WWW的这种基本结构可使用户方便地运行、获取第三方的应用软件及内容服务,并可使开发人员方便地为广大客户创建特定的应用软件和内容服务。 下面我们再来分析WAP的网络架构。WAP网络架构由3部分组成,即WAP网关、WAP手机和WAP内容服务器。其中,WAP网关起着“翻译”协议的作用,是联系GSM网与Internet的桥梁;WAP内容服务器可以存储大量信息,以供WAP手机用户来访问、浏览和查询等;WAP手机为用户提供了上网用的微浏览器及信息、命令的输入方式等。图2.3所示就是WAP模型的基本网络架构。当用户从WAP手机键入想要访问的WAP内容服务器的URL后,信号经过无线网络,以WAP协议方式发送请求至WAP网关,然后经过“翻译”处理,再以HTTP协议方式与WAP内容服务器交互,最后WAP网关将服务器返回的内容压缩、处理成二进制流,并返回到客户的WAP手机屏幕上。编程人员需要解决的问题是编写WAP内容服务器上的程序或者说WAP网页,有关WAP网页的编写方法我们后面会详细介绍的。 图2.3 WAP模型 与WWW模型一样,WAP也定义了一组旨在促进移动终端与WAP内容服务器之间通信的必要配置,主要包括以下几个方面: (1) 标准命名模型。WAP与WWW一样,其服务器和内容都是通过Internet标准的信息指定方法进行命名的。 (2) 内容键入。主要指URL的键入,WAP建立了与WWW一致的内容形式和类型,允许WAP用户代理在此基础上进行正确的处理。 (3) 标准内容格式。WAP基于WWW技术,所用微浏览器也支持一组标准的内容格式,包括WML及其脚本语言、图像、日历信息、电子名片甚至涨价幅度等的格式。 (4) 标准协议。WAP网络协议允许手机中的微浏览器通过WAP网关连接到WAP内容服务器上,满足了移动终端与网络服务器之间传输信息的要求。 关于WAP的网络构架,我们还有几点需要强调说明: (1) WAP的客户端一般都是WAP移动设备,比如最常见的手机。它们通常由不同的公司生产,各自具有不同的特点,所以对WML和WMLScript 的解释也有所不同。因此,将来具体开发时,还要参考各个厂家提供的技术资料,综合考虑不同品牌、型号的WAP手机特点,如Nokia 7110、 Ericsson R380、Motorola L2000www等等,以使开发的网页及应用能为绝大多数的手机所接受。 (2) 一般来说,用户都希望WAP手机的屏幕足够大,分辨率足够高,否则浏览网页时不是太方便。然而由于不同型号WAP手机的屏幕大小并不完全一样,所以开发人员需要考虑针对不同的手机制作不同的网页,或制作含有多种选择的网页,以便使得客户在浏览时同样感到合适、方便和快捷。而且,由于各种手机对WML和 WMLScript的支持情况不太一样,就像Internet Explore和Netscape之间的情况一样,所以开发时更是要考虑不同手机的特殊情况。 (3) WAP手机上网中的安全性问题在开发中也需要考虑,如散射在空间中的电波会同时把用户的口令、密码等重要信息同时散射在空间中。本书后面将专门讨论WAP手机上网的安全性问题。 (4) 网关在WAP系统的整个构架中有着十分关键的作用,它是连接客户和服务的桥梁。网关可以在电信局一端(见图2.4),也可以和网络服务器集成在一起(见图2.5)。图2.4 网关在电信局一端时的结构图 具体开发中,要根据这两种情况采用和实施不同的设计思想及方法。一般来说,如果网关在电信局一端,那么在服务端开发应用程序时与以前的网页开发没有太大的区别。只要符合通用网关接口CGI(Common Gateway Interface)标准,无论是采用Perl、C、C++、Basic、 Dephi或是专门的ISAPI、Serverlit等,开发方法都是一样的。这种情况下开发人员拥有比较大的自由。

2. 三层架构详细介绍

1、JDK (Java Development Kit)Java开发工具集
从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,
有利于理解Java面向对象的设计思想。JDK的另一个显着特点是随着Java (J2EE、J2SE
以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java
应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
2、Java Workshop
3、NetBeans 与Sun Java Studio 5

NetBeans是开放源码的Java集成开发环境(IDE),适用于各种客户机和Web应用。
Sun Java Studio是Sun公司最新发布的商用全功能Java IDE,支持Solaris、Linux和Win
dows平台,适于创建和部署2层Java Web应用和n层J2EE应用的企业开发人员使用。

NetBeans是业界第一款支持创新型Java开发的开放源码IDE。开发人员可以利用业界
强大的开发工具来构建桌面、Web或移动应用。同时,通过NetBeans和开放的API的模块
化结构,第三方能够非常轻松地扩展或集成NetBeans平台。

NetBeans3.5.1主要针对一般Java软件的开发者,而Java One Studio5则主要针对企
业做网络服务等应用的开发者。Sun不久还将推出Project Rave,其目标是帮助企业的开
发者进行软件开发。NetBeans 3.5.1版本与其他开发工具相比,最大区别在于不仅能够
开发各种台式机上的应用,而且可以用来开发网络服务方面的应用,可以开发基于J2ME
的移动设备上的应用等。在NetBeans 3.5.1基础上,Sun开发出了Java
One Studio5,为用户提供了一个更加先进的企业编程环境。在新的Java
One Studio5里有一个应用框架,开发者可以利用这些模块快速开发自己在网络服务方面
的各种应用程序。
4、Borland 的JBuilder

Jbuilder进入了Java集成开发环境的王国,它满足很多方面的应用,尤其是对于服
务器方以及EJB开发者们来说。下面简单介绍一下Jbuilder的特点:

1)Jbuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB
(Enterprise JavaBeans)的应用。

2)用户可以自动地生成基于后端数据库表的EJB Java类,Jbuilder同时还简化了EJ
B的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布
应用程序所必需的接口定义语言Interface Definition Language)和控制远程对象。

3)Jbuilder支持各种应用服务器。Jbuilder与Inprise Application Server紧密集
成,同时支持WebLogic Server,支持EJB 1.1和EJB 2.0,可以快速开发J2EE的电子商务
应用。

4)Jbuilder能用Servlet和JSP开发和调试动态Web 应用。

5)利用Jbuilder可创建(没有专有代码和标记)纯Java2应用。由于Jbuilder是用纯J
ava语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。

6)Jbuilder拥有专业化的图形调试接口,支持远程调试和多线程调试,调试器支持
各种JDK版本,包括J2ME/J2SE/J2EE。

JBuilder环境开发程序方便,它是纯的Java 开发环境,适合企业的J2EE开发;缺点
是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较
吃内存,这时运行速度显得较慢。
5、Oracle 的JDeveloper

Oracle9i JDeveloper(定为9.0版,最新为10g)为构建具有J2EE功能,XML和Web
services的复杂的,多层的Java应用程序提供了一个完全集成的开发环境。它为运用Ora
cle9i数据库和应用服务器的开发人员提供特殊的功能和增强性能,除此以外,它也有资
格成为用于多种用途Java开发的一个强大的工具。

Oracle9i JDeveloper的主要特点如下:

① 具有UML(Unified Modeling Language,一体化建模语言)建模功能。可以将业
务对象及e-business应用模型化。

② 配备有高速Java调试器(Debuger)、内置Profiling工具、提高代码质量的工具
“CodeCoach”等。

③ 支持SOAP(Simple Object Access Protocol)“简单对象访问协议”、UDDI(U
niversal Description, Discovery and Integration)“统一描述、发现和集成协议”
、WSDL(Web Services Description Language)“WEB服务描述语言”等Web服务标准。

JDeveloper 不仅仅是很好的 Java 编程工具,而且是 Oracle Web 服务的延伸,支
持 Apache SOAP,以及 9iAS ,可扩充的环境和 XML 和 WSDL 语言紧密相关。Oracle9i
Jdeveloper完全利用Java编写,能够与以前的Oracle服务器软件以及其他厂商支持J2EE
的应用服务器产品相兼容,而且在设计时着重针对Oracle9i,能够无缝化跨平台之间的
应用开发,提供了业界第一个完整的、集成了J2EE和XML的开发环境,允许开发者快速开
发可以通过Web、无线设备及语音界面访问的Web服务和交易应用,以往只能通过将传统J
ava编程技巧与最新模块化方式结合到一个单一集成的开发环境中之后才能完成J2EE应用
开发生命周期管理的事实,从根本上得到改变。缺点就是对于初学者来说,较复杂,也
比较难。
6、IBM的Visual Age for Java

Visual Age for Java是一个非常成熟的开发工具,它的特性以于IT开发者和业余的
Java编程人员来说都是非常用有用的。它提供对可视化编程的广泛支持,支持利用CICS
连接遗传大型机应用,支持EJB的开发应用,支持与Websphere的集成开发,方便的bean
创建和良好的快速应用开发(RAD)支持和无文件式的文件处理。

IBM为建设Web站点所推出的WebSphere Studio Advanced Edition及其包含的Visual
Age for Java Professional Edition软件已全面转向以Java为中心,这样,Java开发人
员对WebSphere全套工具的感觉或许会好了许多。Studio所提供的工具有:Web站点管理
、快速开发 JDBC页向导程序、HTML编辑器和HTML语法检查等。这确实是个不错的HTML站
点页面编辑环境。Studio和VisualAge集成度很高,菜单中提供了在两种软件包之间快速
移动代码的选项。这就让使用Studio的Web页面设计人员和使用VisualAge的Java程序员
可以相互交换文件、协同工作。

Visual Age for Java支持团队开发,内置的代码库可以自动地根据用户做出改动而
修改程序代码,这样就可以很方便地将目前代码和早期版本做出比较。与Visual Age紧
密结合的Websphere Studio本身并不提供源代码和版本管理的支持,它只是包含了一个
内置文件锁定系统,当编辑项目的时候可以防止其他人对这些文件的错误修改,软件还支
持诸如Microsoft Visual SourceSafe这样的第三方源代码控制系统。Visual Age for
Java完全面向对象的程序设计思想使得开发程序非常快速、高效。你可以不编写任何代
码就可以设计出一个典型的应用程序框架。Visual Age for Java作为IBM电子商务解决
方案其中产品之一,可以无缝地与其他IBM产品,如WebSphere、DB2融合, 迅速完成从设
计、开发到部署应用的整个过程。

Visual Age for Java独特的管理文件方式使其集成外部工具非常困难,你无法让Vis
ual Age for Java与其他工具一起联合开发应用。
7、BEA 的 WebLogic Workshop

BEA WebLogic Workshop是一个统一、简化、可扩展的开发环境,使所有的开发人员
都能在 BEA WebLogic Enterprise Platform之上构建基于标准的企业级应用,从而提高
了开发部门的生产力水平,加快了价值的实现。

WebLogic Workshop除了提供便捷的Web服务之外,它能够用于创建更多种类的应用
。作为整个BEA WebLogic Platform的开发环境。不管是创建门户应用、编写工作流、还
是创建Web应用,Workshop 8.1都可以帮助开发人员更快更好地完成。

WebLogic Workshop的主要特点如下:

① 使 J2EE 开发切实可行,提高开发效率

BEA WebLogic Workshop 使开发人员远离 J2EE 内在的复杂性,集中精力专注业务
逻辑,无须操心单调乏味的基础结构代码。这种创新意味着,已被企业验证的 J2EE 的
强大功能,最终被大多数不熟悉 Java 和 J2EE 的应用开发人员所掌握,从而使 IT 部
门的工作效率提高一个数量级。

可视化设计器以及直观的概念,如事件、属性和控件等,实现了基于事件的开发。W
orkshop 简化的程序设计模型,使开发人员不必掌握复杂的 J2EE API 和面向对象的程
序设计原理。所有开发人员,包括 J2EE 专家和具有可视化和过程化语言技能的应用开
发人员在内,都可以共同工作在 BEA WebLogic Enterprise Platform 之上。Workshop
的可视化开发环境,创建带有代码注释的标准 Java 文件,用来说明由运行时框架实施
的企业级需求。J2EE 和其他高级开发人员,借助功能强大的代码编辑功能,可以访问
Java 源代码,从而弥补了可视化设计器的不足。

② 构建企业级应用

通过在可伸缩、安全可靠的企业级架构上实施各种应用,BEA WebLogic
Workshop 大大降低了开发风险。而且,所有应用的创建都使用标准的 J2EE 组件,既保
护了您的技术投资,又保持了最大的灵活性。
BEA WebLogic Workshop 运行框架,是统一整个架构的汇聚层,使单一、简化的程序设
计模型扩展到所有的 BEA WebLogic Enterprise Platform 应用类型。通过解释设计时
创建的注释代码,运行时框架可以实现必要的 J2EE 组件,并且提取出与 J2EE 应用开
发有关的所有底层细节。

③ 降低 IT 复杂性

BEA WebLogic Workshop 提供各种 Java 控件,使得与 IT 资源的连接更轻而易举
。另外,在构建任何 BEA WebLogic Platform 的应用中,Java 控件不仅可扩展而且完
全相同。这种强大、有效的方法能够:降低 IT 技术的复杂性,优化信息的可用性,推
动包含"最佳业务方案"的可重用服务的开发,使开发人员能以更低的成本、更短的时间
实现更大的产出。

利用 BEA WebLogic Workshop,任何开发人员都能以最大的生产效率,构建各种
Web 服务、Web 应用、门户和集成项目。BEA WebLogic Workshop是BEA的产品战略核心
,它帮助客户接触和利用面向服务架构(SOA)的强大功能。BEA Weblogic Workshop
8.1极大简化了当前实际企业集成环境中企业级应用和服务的构建,并成为全面支持关键
企业级应用(如异步、真正松耦合和粗粒度消息传送等)的自然选择。它的缺点就是过于
复杂,对于初学者来说,理解起来较为困难。
8、WebGain 的Visual Cafe for Java

Visual Cafe 是只能在Symantec公司的Java虚拟机、Netscape公司的Java虚拟机和M
icrosoft虚拟机上工作的调试器。这对于开发者来讲是一个重要的特性,因为用户开发的
Java代码中的许多软件bug就可能中会在某种特定的虚拟机上起作用。

在修改后进行编译基继续进行调试时,Visual Cafe会自动将文件存盘,使用Visual
Cafe创建的原生应用具有许多特点。除了明显的速度提高之外,Symantec使类库的二进制
方式比正常的JDK小Visual Cafe为所指定的关系自动生成或更新必要的Java代码。利用V
isual Cafe,用户可以从一个标准对象数据库中集合完整的Java应用程序和Applet,而
不必再编写源代码。Visual Cafe还提供了一个扩充的源代码开发工具集。

Visual Cafe综合了Java软件的可视化源程序开发工具,它允许开发人员在可视化视
图和源视图之间进行有效地转换。在可视化视图中进行的修改立即反映在源代码中。对
源代码的改变自动更新可视化视图。

Visual Cafe具有许多源文件方面的特性,如全局检索和替换。绝大多数Java开发工
具的文献的问题在于简单地挨个介绍开发工具的每部分组件,但用户在开应用时还需要
一个面向任务的手册,利用这个手册你可以不必知道工具每一部分的特定功能就可以开
始创建自己的应用。Visual Cafe提供了非常全面的用户指南,它对最开始的安装到创建
第一个Java应用和Applet都提供了全面的帮助,Visual Cafe将自动生成所指明关系的必
要Java代码。Visual Cafe可以在Windows 95和Windows NT平台下运行,Symantec公司为
Java开发工作提供一个在Macintosh操作系统下可以运行的RAD工具。Visual Cafe编译器
速度很快,在国际化支持方面比较突出;缺点就是对于初学者来说,较复杂,也比较难

9、Macromedia的JRUN

Macromedia公司的JRun是一个具有最广阔适用性的Java引擎,用于开发及实施由Jav
a Servlets和JavaServer Pages编写的服务器端Java应用。JRun是第一个完全支持JSP
1.0 规格书的商业化产品,全球有超过80,000名开发人员使用JRun在他们已有的Web服务
器上添加服务器端Java的功能。其中Web服务器包括了Microsoft IIS,Netscape
Enterprise Server,Apache等。

JRun是开发实施服务器端Java的先进引擎。如果我们希望在我们的Web应用中添加服
务器端Java功能,那么JRun将成为我们的正确选择。

JRun目前有3个版本,它是第一个支持Java Server Pages(JSP)规格书1.0的商业化
产品。JSP是一种强大的服务器端技术,它是用于创建复杂Web应用的一整套快速应用开
发系统。JRun可以使我们开始开发并测试Java应用。它最多接受5个并发的连接并且包括
全部Java Servlet API,支持JavaServer Pages(JSP),支持所有主要的Web
servers和计算机平台。 JRun Pro能够在生产环境下承受大访问量的负载,帮助我们实
施应用、服务或Web站点(包括内联网)。JRun Pro 支持无限量并发式连接运行多个Jav
a虚拟机,包括多个并发的Java虚拟机(JVM)。提供一个远程管理applet以及一个远程
可再分布式的管理applet。JRun Pro Unlimited包括了所有JRun Pro的功能,除次以外
,还可以运行无限量的,并发的JVM。

JRun依靠其内置的JRun Web Server可以单独运行。使用服务器端Java,用户可以开
发出复杂的商业应用系统。最重要的一点是,由于servlets的平台独立性,以及更加简
单的开发、更快速的实施、更经济的维护成本,它是CGI(Common Gateway
Interface)或Perl scripts的极佳的替代产品。缺点就是对于初学者来说,较复杂,也
比较难。
10、JCreator

JCreator 是一个Java程序开发工具,也是一个Java集成开发环境(IDE)。无论你
是要开发Java应用程序或者网页上的Applet元件都难不倒它。在功能上与Sun公司所公布
的JDK等文字模式开发工具相较之下来得容易,还允许使用者自订义操作窗口界面及无限
Undo/Redo等功能。

JCreator为用户提供了相当强大的功能,例如项目管理功能,项目模板功能,可个
性化设置语法高亮属性、行数、类浏览器、标签文档、多功能编绎器,向导功能以及完
全可自定义的用户界面。通过JCreator,我们不用激活主文档而直接编绎或运行我们的J
AVA程序。

JCreator能自动找到包含主函数的文件或包含Applet的Html文件,然后它会运行适
当的工具。在JCreator中,我们可以通过一个批处理同时编绎多个项目。JCreator的设
计接近Windows界面风格,用户对它的界面比较熟悉。其最大特点是与我们机器中所装的
JDK完美结合,是其它任何一款IDE所不能比拟的。它是一种初学者很容易上手的java开
发工具,缺点是只能进行简单的程序开发,不能进行企业J2EE的开发应用。

11、Microsoft VJ++

Visual J++ 是Microsoft 公司推出的可视化的Java 语言集成开发环境(IDE),为Ja
va 编程人员提供了一个新的开发环境,是一个相当出色的开发工具。无论集成性、编译
速度、调试功能、还是易学易用性,都体现了Microsoft 的一惯风格。Visual J++ 具有
下面的特点:

1)Visual J++ 把Java 虚拟机(JVM)作为独立的操作系统组件放入Windows,使之从
浏览器中独立出来。

2)Microsoft 的应用基本类库(AFC,Application Foundation Class Library)对SU
N 公司的JDK 作了扩展,使应用基本类库更加适合在Windows 下使用。

3) Visual J++ 的调试器支持动态调试,包括单步执行、设置断点、观察变量数值
等。

4) Visual J++ 提供了一些程序向导(Wizards)和生成器(Builders),它们可以方
便地帮助用户快速地生成Java 程序,帮助你在自己的工程中创建和修改文件。

5) Visual J++ 界面友好,其代码编辑器具有智能感知、联机编译等功能,使程序
编写十分方便。Visual J++ 中建立了Java 的WFC,这一新的应用程序框架能够直接访问
Windows 应用程序接口(API),使你能够用Java 语言编写完全意义上的Windows 应用程
序。

6)Visual J++ 中表单设计器的快速应用开发特性使用WFC 创建基于表单的应用程
序变得轻松、简单。通过WFC 可以方便地使用ActiveX 数据对象(ADO,ActiveX Data
Objects)来检索数据和执行简单数据的绑定。通过在表单设计器中使用ActiveX 数据对
象,可以快速地在表单中访问和显示数据。

Visual J++能结合微软的一贯的编程风格,很方便进行Java 的应用开发,但它的移
植性较差,不是纯的Java 开发环境。
12、Eclipse

Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美
元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(I
DE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境
(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中
集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显着改变了项目工作
流程,使开发者可以专注在实际的嵌入式目标上。

Eclipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充
当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Jav
a类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse
插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它
们通过扩展点提供的服务将如何被使用。

利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器
等)结合在一起。如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我
们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由
于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器
都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。

Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于
微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供
了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse联盟已经宣布将在2004
年中期发布其3.0版软件。这是一款非常受欢迎的java开发工具,这国内的用户越来越多
,实际上实用它java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来比
较困难。
13、Ant

Another Neat Tool(Ant)是一种基于Java的build工具。理论上来说,它有些类似于
(Unix)C中的make ,但没有make的缺陷。因为Ant的原作者在多种(硬件)平台上开发软
件时,无法忍受这些工具的限制和不便。类似于make的工具本质上是基于shell(语言)
的:他们计算依赖关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)
。这就意味着你可以很容易地通过使用OS特有的或编写新的(命令)程序扩展该工具;
然而,这也意味着你将自己限制在了特定的OS,或特定的OS类型上,如Unix。Ant就不同
了。与基于shell命令的扩展模式不同,Ant用Java的类来扩展。(用户)不必编写shell
命令,配置文件是基于XML的,通过调用target树,就可执行各种task。每个task由实现
了一个实现了特定Task接口的对象来运行。

Ant支持一些可选task,一个可选task一般需要额外的库才能工作。可选task与Ant
的内置task分开,单独打包。这个可选包可以从你下载Ant的同一个地方下载。ANT本身
就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除
了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些
。Ant是Apache提供给Java开发人员的构建工具,它可以在Windows OS和Unix OS下运行
,它不仅开放源码并且还是一个非常好用的工具。Ant是Apache Jakarta中一个很好用的
Java开发工具,Ant配置文件采用XML文档编写,所以Java程序员对其语法相当熟悉,Ant
是专用于Java项目平台,能够用纯Java来开发,它能够运行于Java安装的平台,即体现
了它的跨平台功能。它的缺点显示执行结果只能是DOS字符界面,不能进行复杂的java程
序开发。
14、IntelliJ

Intellij IDEA是一款综合的Java 编程环境,被许多开发人员和行业专家誉为市场
上最好的IDE。它提供了一系列最实用的的工具组合:智能编码辅助和自动控制,支持J2
EE,Ant,JUnit和CVS集成,非平行的编码检查和创新的GUI设计器。IDEA把Java开发人
员从一些耗时的常规工作中解放出来,显着地提高了开发效率。具有运行更快速,生成
更好的代码;持续的重新设计和日常编码变得更加简易,与其它工具的完美集成;很高
的性价比等特点。在4.0版本中支持Generics,BEA WebLogic集成,改良的CVS集成以及G
UI设计器。

IntelliJ IDEA能尽可能地促进程序员的编程速度。它包括了很多辅助的功能,并且
与Java结合得相当好。不同的工具窗口围绕在主编程窗口周围,当鼠标点到时即可打开
,无用时也可轻松关闭,使用户得到了最大化的有效屏幕范围。以技术为导向的IDEA集
成了调试器,支持本地和远程的调试,即使我们需要修改一些设置上的东西使我们的工
作顺利进展。另外,它还提供了通常的监视,分步调试以及手动设置断点功能,在这种
断点模式下,我们可以自动地在断点之外设置现场访问,甚至可以浏览不同的变量的值
。IDE支持多重的JVM设置,几个编译程序和Ant建造系统,并且,它使得设置多重的自定
义的类途径变得简单。

IntelliJ Idea是一个相对较新的Java IDE。它是Java开发环境中最为有用的一个。
高度优化的IntelleJ Idea使普通任务变得相当容易,Idea支持很多整合功能,更重要的
使它们设计的好容易使用。Idea支持XML中的代码实现,Idea同时还会校正XML,Idea支
持JSP的结构。作用于普通Java代码的众多功能同样适用于JSP(比如整合功能),同时
支持JSP调试;支持EJB,尽管它不包括对个别应用服务器的特殊支持。Idea支持Ant建立
工具,不仅是运行目标它还支持编译与运行程序前后运行目标,另外也支持绑定键盘快
捷键。在编辑一个Ant建立XML文件时,Idea还对组成Ant工程的XML部分提供支持。Intel
liJ IDEA 被称为是最好的JAVA IDE开发平台,这套软件就是以其聪明的即时分析和方便
的 refactoring 功能深获大家所喜爱。缺点是较复杂,对初学者来说,理解起来比较困
难。

小结

现在常用的Java项目开发环境有:JBuilder、VisualAge for Java、Forte for
Java, Visual Cafe、Eclipse、NetBeans IDE、JCreator +J2SDK、jdk+记事本、EditPl
us+ J2SDK等等。一般开发J2EE项目时都需要安装各公司的应用服务器(中间件)和相应
的开发工具,在使用这些开发工具之前,我们最好能熟知这些软件的优点和缺点,以便
根据实际情况选择应用。编程工具只是工具,为了方便人们工作而开发的,各有特点,
因此,选工具主要的依据自己将要从事的领域是什么,而不是盲目的认为那种工具好,
那种工具不好。最后希望大家都能找到自己合适的java 开发工具

3. 学习.net 上学期间实现功能都是在按钮中写代码,现在在培训中心学了三层架构之后不懂代码怎么写了,不...

三层只是一种思想,就是把代码都分开,DAL(数据访问层)专门用来操作数据库,BLL(业务逻辑层)专门用来入理一些逻辑,UI层,就是Web的界面了,主要用来把值传给BLL,然后BLL再根据实际的逻辑,调用DAL层里面的方法

开发顺序:先写 Model(模型层,一般对应数据库字段),DAL,BLL,UI,一般还会再加一个通用的助手层(CommonUtility),比如SqlHelper.cs,PageHelper.cs 等等。

引用顺序: UI 引用 BLLModel(如果有CommonUtility,也引用)
BLL层引用 Model,DAL(如果有CommonUtility,也引用)
DAL层引用顺序 Model (如果有CommonUtility,也引用)

记住 ,我们写代码是反着写的,调用是正着调用,就是说先写底层,才能给顶层的调用。

4. 怎么使用三层架构

学ASP.NET都知道它的最经典的架构是三层架构,也是目前应用得最广泛的一种架构。以前说起三层架构大家都知道MVC架构,这是html开发中用得比较多的,现在AJAX主要就是用这种架构。大家ASP.NET的三层是指数据访问层,业务逻辑层和表示层,而且都知道数据访问层是用来访问数据的,业务逻辑层是用来处理一些系统的业务逻辑的,表示层就是把内容呈现出来给用户,与用户进行交互的。划分三层的好处就是每一层都是独立的,修改其中一层一般不会影响其他层的代码,这样就大大的方便了日后的维护和升级。它最大的缺点是架构和编码都比较复杂,而且对性能的提高没有任何帮助,反而还可能会降低执行效率。

有时候真的觉得“三层”编起来挺麻烦的,在ASP.NET 2.0里,访问数据和显示出来只要拖两个控件就可以了(AccessDataSource/SQLDatasource和GridView),几分钟一个页面就出来了,而且还具备了修改中,删除,分页,排序等功能。而用三层架构就麻烦多了,先要写数据访问层的代码,接着写业务逻辑层的代码(要调用数据层的方法),最后才是表示层,也就是页面的设计,还有调用业务逻辑层的代码读取数据。(注意:表示层是绝对不会访问数据层的内容,只能通过业务层。业务层在这里是连接它们的桥梁。所以说业务层是最重要的一层)既然这样为什么还要用三层呢?前面提到的一层架构的一个很大的问题就是前台和后台代码没有很好的分开,不利于分工,第二,不利于日后的维护和升级。如果是个人主页或者是一些一个人完成的小系统用一层还是挺方面的。如果是一些比较大的系统,特别是企业级的应用,就非用三层甚至n层不可了。一般三层就很够了,再划分更多只会增加设计和编码的难度。

那到底怎么去分层呢?怎么样分层就符合三层架构原则呢?这是很多刚入门的人经常问的问题。我翻了很多本案例书,可惜很多都是一层或者是两层架构的,绝少三层的。后来研究了petshop4.0和下了一些国外的资料来看才开始对如何分层有点了解。我总结了一下主要有以下三种分层方式:

一:数据层不包含任何代码,只有数据库,还有相关的存储过程。

这种模式下,数据层看起来就变得很简单了。只包含你建立的数据库,和一些存储过程(注意是存储过程)。其实这些存储过程的建立也是相当复杂的(我以后会专门写一篇这方面的文章),因为它们可以完成除数据访问外的其他一些很强大的功能,如分页,实现搜索算法等。数据访问的逻辑就都放在业务层,当然业务层还包含其他一些逻辑代码。我们来看一个示例,假设数据库里有一个表BOOKS(书),建立一个存储过程GetAllBooks,用来读取书的信息,这样在业务层里编一个方法GetBookS()和一个公用数据库访问类,GetBooks()就通过数据库访问类打开连接,执行在存储过程,返回数据(返回类型可以是DataTable,DataSet,DataReader或者实体类)。业务层单独编译成一个或者几个DLL文件。接着就是表示层了,表示层通过调用GetBookS()返回数据绑定在相关的控件里。务层的方法都是在表示层调用。一般来说book.aspx和book.aspx.cs都是表示层的内容。所有前台的设计,相关控件,数据缓存都是属于表示层。

二:数据层还包含所有公共数据访问代码。

这种模式和前一种差别不大,主要是把数据访问代码六到数据层。这样可以很方面实现对多数据库的支持。业务逻辑层直接调用数据层的相关访问数据的代码,完全不必了解底层是什么数据库。其他和前一种没什么分别。

三:所有数据读取都放在数据层。

这种模式下像前面所述的GetBooks()方法都是放在数据层,在业务层再定义一个GetBookS()方法以供表示层调用。这种模式下业务层不但不必了解底层是什么数据库,而且连数据库的结构都不必了解了。这可以说是最标准的三层架构了,在Microsoft的PetShop 4.0里就是用这种模式。

我是从“上海全鼎软件学院”毕业的————————

5. 三层架构中sql语句写在哪层

三层是指:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)
数据库语句 写在 数据访问层(DAL)

6. 什么是三层架构各层的主要功能及相互关系有哪些

一般讲到三层架构,其实就是将整个业务应用划分为表示层、业务逻辑层、数据访问层等。
数据访问层DAL,业务逻辑层BLL。表现层UI (界面类的)【 model(数据模型层,主要放的我就不用说了。一般都是数据库中的。) ,】model是贯穿的。所有的都引用它,bll引用dal ui引用dal 和bll 然后就是调用
三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
普通三层:数据访问层DAL:用于实现与数据库的交互和访问,从数据库获取数据或保存数据到数据库的部分。 业务逻辑层BLL:业务逻辑层承上启下,用于对上下交互的数据进行逻辑处理,实现业务目标。 表示层UI:主要实现和用户的交互,接收用户请求或返回用户请求的数据结果的展现,而具体的数据处理则交给业务逻辑层和数据访问层去处理。业务实体Model:用于封装实体类数据结构,一般用于映射数据库的数据表或视图,用以描述业务中客观存在的对象。Model分离出来是为了更好地解耦,为了更好地发挥分层的作用,更好地进行复用和扩展,增强灵活性。 通用类库Common:通用的辅助工具类
工程模式:简单工厂模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常根据一个条件(参数)来返回不同的类的实例。
工厂角色(Creator)
是简单工厂模式的核心,它负责实现创建所有具体产品类的实例。工厂类可以被外界直接调用,创建所需的产品对象。
抽象产品角色(Proct)
是所有具体产品角色的父类,它负责描述所有实例所共有的公共接口。
具体产品角色(Concrete Proct)
继承自抽象产品角色,一般为多个,是简单工厂模式的创建目标。工厂类返回的都是该角色的某一具体产品。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通 讯与中间层建立连接,再经由中间层与数据库进行交换.
完善的三层结构的要求是:修改表现层而不用修改逻辑层,修改逻辑层而不用修改数据层 否则你的应用是不是多层结构,或者说是层结构的划分和组织上是不是有问题就很难说. 不同的应用有不同的理解,这是一个概念的问题.
MVC系统中的模型从概念上可以分为两类――系统的内部状态和改变系统状态的动作。模型是你所有的商业逻辑代码片段所在。本文为模型提供了业务实体对象和业务处理对象:所有的业务处理对象都是从ProcessBase类派生的子类。业务处理对象封装了具体的处理逻辑,调用业务逻辑模型,并且把响应提交到合适的视图组件以产生响应。业务实体对象可以通过定义属性描述客户端表单数据。所有业务实体对象都EntityBase派生子类对象,业务处理对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。通过业务实体对象实现了对视图和模型之间交互的支持。实现时把"做什么"(业务处理)和"如何做"(业务实体)分离。这样可以实现业务逻辑的重用。由于各个应用的具体业务是不同的,这里不再列举其具体代码实例。
MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。 同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。 在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。
在ASP NET中的MVC架构编写的,具有极其良好的可扩展性。它可以轻松实现以下功能: ①实现一个模型的多个视图;②采用多个控制器;③当模型改变时,所有视图将自动刷新;④所有的控制器将相互独立工作。这就是MVC架构的好处,只需在以前的程序上稍作修改或增加新的类,即可轻松增加许多程序功能。以前开发的许多类可以重用,而程序结构根本不再需要改变,各类之间相互独立,便于团体开发,提高开发效率。下面讨论如何实现一个模型、两个视图和一个控制器的程序。其中模型类及视图类根本不需要改变,与前面的完全一样,这就是面向对象编程的好处。对于控制器中的类,只需要增加另一个视图,并与模型发生关联即可。该模式下视图、控制器、模型三者之间的示意图如图2所示。同样也可以实现其它形式的MVC例如:一个模型、两个视图和两个控制器。从上面可以看出,通过MVC架构实现的应用程序具有极其良好的可扩展性,是ASP NET面向对象编程的未来方向。
MVC的不足体现在以下几个方面:(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。(2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。(4)目前,一般高级的界面工具或构造器不支持MVC架构。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。
三层架构是将代码按其作用分成三部分,每部分解决自己负责的流程. 三层架构的功用之处,在于驾驭大型web程序的结构,使之便于管理和扩展.
在设计UI的时候,我们不需要关心其中的逻辑和数据问题,只需要空出对应的位置,用于放置数据. 在设计和修改的时候,要解决的只是HTML的结构,代码看起来干净利落,做起来也是干净利落.
UI直接将程序逻辑的任务丢给BLL,BLL就开始构建具体的实现细节.BLL的创建依赖于业务. 例如一个文章系统,BLL_Aticle就表示它是用于对文章的处理的.BLL_Aticle可以提供给UI一个文章列表的recordset,显示在UI的预留位置. 当BLL_Aticle需要从数据库中获取数据的时候,就将任务丢给DAL层
DAL层专门负责和数据库打交道,它从BLL获取参数,组织一个有效的SQL,建立数据库连接,执行SQL进行更新或获取,将返回的数据交给BLL.
每一部分的业务都集中于一个UI-BLL-DAL的链中,上下清晰了然. 至于是怎样的便于管理和扩展,将在后面结合实例进行分析.
复杂的生命形式必有复杂的生存法则,若想在自己的项目中应用好三层架构,需要多用点心体会其中的应用法则.
我对三层架构的理解还不够深,这些文章能算是抛砖引玉就不错了.大家在阅读当中不要局限于我所构思的法则,要多向具体的应用中去实践,根据具体情况,寻出自己的法则. 有所感悟,就记得写下来,这种感悟是进步的契机,但必然不是最终的结果.有了感悟就拿去应用,可以发现它的优劣,继续完善
三层架构比双层或单层结构都有更大的优势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度工降低了开发的难度。
三层架构属于瘦客户的模式,用户端只需一个较小的硬盘、较小的内存、较慢的CPU就可以获得不错的性能。相比之下,单层或胖客户对面器的要求太高。
三层架构的另一个优点在于可以更好的支持分布式计算环境。逻辑层的应用程序可以有多个机器上运行,充分利用网络的计算功能。分布式计算的潜力巨大,远比升级CPU有效。
三层架构的最大优点是它的安全性。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。

7. ASP.NET使用三层架构后后台功能代码如何写

其实和普通的一样。
在数据层各写好
增删查改
的方法。
在逻辑层也有增删查改的方法,逻辑层方法里面调用对应数据层里的方法。
页面呢,
需要删除的,就调用逻辑层删除的方法,以此类推,页面层需要做什么就调用逻辑层对应的方法。
就这样!

8. 怎样在三层架构的逻辑层中增加添加功能

首先你要明白三层结构各个层次的作用,UI层只是显示数据,BLL业务逻辑层处理一般的业务逻辑,而Dll数据管理层是和数据库打交道的。比如这是一个存在于DLL中的用户增加方法:
/// <summary>
/// 用户注册
/// </summary>
/// <param name="list">注册信息</param>
/// <returns></returns>
#region IUserData 成员

public int RegisterUser(ArrayList list)
{
int result = 0;
using (conn = new SqlConnection(DBHelper.connectionString)){

cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open ();
cmd.CommandText = "RegisterUser";
cmd.CommandType = System.Data.CommandType.StoredProcere;
//为存储过程参数赋值
SqlParameter [] para = new SqlParameter []{
new SqlParameter ("@LoginId",list[0].ToString()),
new SqlParameter ("@LoginPwd",list[1].ToString()),
new SqlParameter ("@Name",list[2].ToString ()),
new SqlParameter ("@QQ",list[3].ToString ()),
new SqlParameter ("@Mail",list[4].ToString())
};
cmd.Parameters .AddRange(para);
result = cmd.ExecuteNonQuery();
return result;
}
}

#region IUserData 成员
在业务逻辑直接调用
/// <summary>
/// 用户注册
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static bool RegisterUser(ArrayList list)
{
if (BlogFactory.AbsFactory.CreateFactory().UserData().LoginIdExists(list[0].ToString()))//判断用户是否存在
{
return false;
}
else
{
BlogFactory.AbsFactory.CreateFactory().UserData().RegisterUser(list);//实现添加
return true;
}
}
以此往上各个层次分工明细
/// <summary>
/// 完成按钮,注册
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void IMBRegister_Click(object sender, ImageClickEventArgs e)
{

ArrayList list = new ArrayList(5);
list.Add(this.txtLoginId.Text);
list.Add(this.txtLoginPwd.Text);
list.Add(txtName.Text);
list.Add(txtQQ.Text);
list.Add(txtEmail.Text);
if (BlogBLL.UserTransfer.RegisterUser(list))
{
Response.Redirect("UserDefault.aspx");
}
else
{
Response.Redirect("Register.aspx", false);
}
}

9. JAVA三层架构里面的main方法写在哪里有main方法吗

如果自己写一般的程序,随便写一个启动类,定义main方法。如果是web项目,tomcat等web服务器已经封装好了启动类,无需自己写,springBoot的启动类就是xxxxApplication,里面有main方法

10. 三层架构数据层的方法,到底应该怎么写

你可以在你的数据层写一个公共类然后定义一些变量,给变量加上读写属性。
public Class test
{
int _ID;
public int ID{get;set;}
string _Name;
public string Name{get;set;}
}
然后你的查询方法改成这样
public DataSet GetInfo(test t)
{
string sql="select * from user ";
string where="where 1=1";
if(t.ID>0)
{
where +=" and ID="+t.ID;
}
if(t.Name!="")
{
where+=" and Name="+t.Name;
}
sql+=where;
//这里就是数据库的一些连接和使用我就不写了
}
然后在你查询的时候这样用就可以啦
比如你在index.aspx页面要用
test t=new test();
t.ID=1;
DataSet ds=GetInfo(t);
这样就可以啦

阅读全文

与三层架构功能方法写在哪里相关的资料

热点内容
404x125的简便运算方法 浏览:10
水泥多孔砖砌墙方法图片 浏览:705
孢谷草种植方法 浏览:283
莴笋青菜种植方法 浏览:736
前列腺增生怎么治疗方法 浏览:846
12伏蓄电池存电量计算方法 浏览:219
冲压工36技计算方法计算实例 浏览:858
骨化三醇免疫治疗方法 浏览:306
三联疗法如何服用方法 浏览:426
93乘43加91的简便方法 浏览:393
海螺吃了头晕有什么方法解决 浏览:812
如何写通项方法 浏览:674
小学生如何写作业快的方法 浏览:347
卫星手机夜景拍摄方法 浏览:97
怎么做瘦肚子最快方法 浏览:11
考场查词典技巧和方法 浏览:639
魔芋水的制作方法视频 浏览:493
同分母分数加减法教学方法分析 浏览:323
平焊单面焊双面成型的教学方法 浏览:601
查询电脑图片有多张的方法 浏览:429