* 一 般 知 识 * 一、计算机应用程序的一般特点 : 二、应用程序开发模型的变迁过程: 单层 两层 三层 N层

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

第十四讲 JSP ( Java Server Page )  JSP 基础  JSP 语法  示例  JSP 和 ASP 的比较  Servlet 和 JSP 的比较.
LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
Web Maple— 云端计 算 数学学院刘海洋 胡婷婷. 需求 什么是 Web Maple ? Maple : “ 数学家的软件 ” 符号和数值计算 动态编程语言 集成编辑环境与图形输出 Web Maple :网页上的数学家 完整的 Maple 功能 云端计算 网页独特的输入输出格式.
淮海工学院 计算机课程 第 1 章 Java 入门 1.1 Java 的起源与发展 1.2 Java 程序开发与运行环境 1.3 Java 程序设计步骤 1.4 Java 程序的构成 一个小游戏.
高级服务器设计和实现 1 —— 基础与进阶 余锋
动态Web开发技术--JSP.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
Java平台企业版(J2EE) 原理.
第一章 JSP概述 学习目标 JSP技术是目前WEB开发技术中应用最广泛的一种.本章对JSP技术、优点、缺点、应用前景作了简要介绍。
J2EE Struts 和Spring 的区别.
建设数字化的卫生监督体系 深 圳 市 卫 生 监 督 所 2006年4月.
大型主机应用上的开放系统和中间件 2011年度教育部-IBM精品课程
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
第14章 c++中的代码重用.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
北京移动(中国移动的子公司)是中国主要的无线运营商之一。中国移动做为无线市场的开拓者,拥有中国70%的无线通信市场,也是世界上第二大的无线提供商,北京移动拥有上亿的手机用户,支持60多个国家的漫游业务。 为北京移动创造的价值 … 优秀的性能,支持了庞大的用户群 标准化了系统接口 加强了系统的灵活性.
Hello World 體驗實作第一個JSP程式.
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
JSP程式設計 基本概論 歐陽芳泉 Fang-Chuan Ou Yang
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
J2EE 培训课程.
AJAX基础.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
J2EE Course 2018/11/20.
JSP自定义标签技术的分析与应用 ----Custom Tag 的分析与应用
第一章 J2EE概述.
第二讲 搭建Java Web开发环境 主讲人:孙娜
R in Enterprise Environment 企业环境中的R
第一章: Java Web 开发技术概述.
高级Web技术 复 习.
大学计算机基础 典型案例之一 构建FPT服务器.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Visual Studio Team System 简介
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第4章 商务逻辑层及其技术.
第一讲 J2EE基础 博和利初级培训 —开发技能.
数据挖掘工具性能比较.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
DevDays ’99 The aim of this mission is knowledge..
任务1-3 使用Dreamweaver创建ASP网页
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
编程作业3:网页正文抽取 (10分).
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
JSP程序设计 第9章 Servlet简介.
第十二章 过滤器.
第四章 团队音乐会序幕: 团队协作平台的快速创建
VisComposer 2019/4/17.
企业应用实训教程 JSP企业级应用.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
Chapter 18 使用GRASP的对象设计示例.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
Delphi 7.0开发示例.
OpenStack vs CloudStack
CMP 讲义 2018 CMP设计哲学及基础概念 CMP推荐的4层代码结构.
基于列存储的RDF数据管理 朱敏
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
1 Web基础知识 1.1 HTTP协议 1.2 Web服务器和浏览器 1.3 C/S模式与B/S模式 1.4 Web的访问原理
Presentation transcript:

* 一 般 知 识 * 一、计算机应用程序的一般特点 : 二、应用程序开发模型的变迁过程: 单层 两层 三层 N层 * 一 般 知 识 * 一、计算机应用程序的一般特点 : 大多数应用,从PC机上的简单报表程序到大型机上的复杂计算,都由三部分组成: 用户界面部分:表示层 应用逻辑部分:业务逻辑层 数据访问部分:数据访问层 二、应用程序开发模型的变迁过程: 单层 两层 三层 N层 1 2 3 1 2 3 1 2 3 1 2 3 4

主机系统或单层结构 数据访问、表示和业务逻辑在一个应用中 功能紧紧耦合在一起 代码复用、代码可维护性、和代码的修改十分困难。 不是分布式的,不具有可伸缩性。

传统的客户/服务器: “胖”客户端 胖客户端: 表示逻辑 业务逻辑 业务数据模型 通讯 Fat client 服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的可能 数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客户端改变,不利于更新和维护 用户界面和程序逻辑绑在一起,代码难以重用 不适应在多用户、多数据库、且非安全的网络环境,可扩展性差

三层分布式对象架构 客户端:业务数据模型与用户界面分离 ,“瘦” 业务逻辑在中间层,成为“对象服务” 中间层可以处理多客户端和多数据库

三层Web应用程序模型 第一层浏览器是表示层,完成用户接口功能。更“瘦” 第二层Web服务器是功能层,完成客户的应用功能。 第三层数据库服务器是数据层,完成数据处理请求。 Web服务器接受客户请求,建立数据库连接,请求数据处理,而后数据库结果返回Web服务器,再传至客户端。

三层Web应用程序模型 功能层的缺点: *体积庞大、功能臃肿、复用性差 *须自己考虑诸如分布处理、负载平衡、事务逻辑、持久性和安全性等诸多问题

N层应用模型 一分为二:显示逻辑层和业务逻辑层 显示逻辑层:接受客户请求,调用业务逻辑层的服务,并将结果呈现给客户端。 业务逻辑层:完成具体的业务处理。其中隐含了分布处理、负载平衡、事务逻辑、持久性和安全性等技术。

应用模型 从逻辑角度看,系统分成客户端、Web服务器、应用服务器、数据库服务器四层

为什么需要J2EE 在企业级应用开发中所面临的而且必须解决的问题: 分布式 可移植 面向Web体系 可装配 能满足企业计算要求 一致性 事务性 安全性 还要有好的特性 可伸缩 可扩展 易维护

为什么需要J2EE J2EE提供了一套完整的解决所有这些问题的框架方案: 提供了分布式、可移植构件的框架 简化了服务器端中间层构件的设计(容器的机制) 为构件与应用服务器提供标准API(与现有的企业信息系统集成) 获得了业界的广泛支持(全球70%的分布式应用是由J2EE体系支撑)

什么是J2EE Open and standard based platform for developing, deploying and managing n-tier, Web-enabled, server-centric enterprise applications 开放的、基于标准的平台,用以开发、部署和管理N层结构、面向Web的,以服务器为中心的企业级应用

客户层 中间层 EIS层 Web层 遗留 系统 业务层 EIS 系统 数据库 客户方 计算机 EIS/数据库服务 J2EE服务器(服务器方中间层)

J2EE的四层模型 浏览器 Java Bean Applet Web服务器 JSP Servelet EJB容器 EJB 桌面 Java应用 数据库 客户端 显示逻辑 商业逻辑 企业信息系统

四层结构 客户层:面向客户的应用和applet Web层:包含用于扩展传统http web服务器的组件,通过java servlet和jsp实现 业务层:包含以EJB形式来提供业务逻辑的组件 企业信息系统层:J2EE的connector结构使得J2EE产品能同EIS层上的企业信息系统进行集成 通常,web和业务层在同一台server(J2EE SERVER)上运行,它们被认为是中间层的子层 J2EE应用通常被认为是三层结构

J2EE在现实环境中的典型应用

支持J2EE标准的厂家 IBM HP Sun Oracle BEA Inprise Macromedia

一些比较小的、可以用来做学习和研究的、提供源代码的产品,如OpenEjb、EJBoss、JonAS、Enhydra。

基本概念 组件 模块 容器

组件 J2EE中的组件实际是标准的java类 与传统java类的差别:组件是特意作为可重用,独立的程序单元创建的,它们可进行组装形成J2EE应用 最终要部署到合适的层上,在层上的对应容器中执行 容器为组件提供访问特定的,标准化的服务和API的能力 一旦对组件进行了部署,就可对其进行配置

组件 客户组件:构建J2EE客户 Applet:在浏览器中运行 标准java应用:在浏览器外独立运行 Web组件:处理客户请求,并为其创建和返回一个合适的响应 Servlet, JSP, web过滤器,web事件监听器 在web容器里面执行 EJB

模块 为了对组件进行部署,组件必须首先组装到模块中,模块是J2EE应用的基本组成单元 模块是J2EE的软件单元,由一个或多个相同组件类型的组件组成,这些组件连同相应的部署描述文件一同绑定到java Archive(JAR)文件中 部署描述文件是XML文件,包含声明语句(非程序代码),描述模块中的每个组件及相关配置或定制需求——包括与其他模块的依赖 J2EE应用由一个或多个模块组成,它们被打包成带有.ear的JAR文件

JAR文件 JAR文件是组合到一个单一的,平台无关的文件中的文件集合,为开发人员提供一种有效方式来聚集和管理J2EE应用功能集 企业应用档案(ear):对组成J2EE应用的各种模块打包 Web应用档案(war):将web层组件打包到war模块 资源适配器档案(rar):将资源适配器组件和相关联的(用于特定EIS的connector)信息打包成RAR模块

Web容器 EJB容器 Web页面, Applet, 可选的 javaBean 过滤器 EJB 事件监听器 数据库 WEB服务器 JSP HTTPS, HTML, XML EJB servlet 事件监听器 数据库 WEB服务器 J2EE服务器

容器 J2EE受到执行它的容器的管理与支持 容器作用是为组件提供与部署,执行,生命周期管理,安全和其他组件需求相关的服务 不同类型的容器为其所管理的组件提供附件服务,如EJB容器为其EJB提供事务服务和持久性服务 对每一种主要组件类型定义相应的容器类型

容器 一致性 安全性 可获得性 可伸缩性 事务性 分布性 生命周期管理 (持久性)

EJB 容器的责任

容器类型 J2EE服务器:是J2EE产品的运行部分。一个J2EE服务器提供EJB容器和Web容器。 Enterprise JavaBeans(EJB)容器:管理J2EE应用程序的enterprise bean的执行。Enterprise bean和它的容器运行在J2EE服务器中。 Web容器:管理J2EE应用程序的JSP和Servlet组件的执行。Web组件和它的容器也运行在J2EE服务器中。 客户端应用程序容器:管理应用程序客户端组件的运行。 Applet容器:管理applet的执行。由运行在客户端的一个Web浏览器和Java插件一同组成。

J2EE平台

J2EE架构及核心技术

公共服务 JNDI (名字和目录服务):共享用户,网络设备,软件组件,应用模块,服务及其他信息 RMI/IIOP (支持IIOP协议的远程方法调用): 访问与RMI编程规则兼容的CORBA服务 JMS(消息服务):在企业中异步交换业务数据和事件的灵活而可靠的机制 JDBC (数据库连接服务) JTS(java transaction service)/JTA (java transaction API) JavaMail和JAF(JavaBeans Activation Framework) JCA/JCE/JSSE/JAAS(安全服务体系)//Cryptography 使用JAXP(Java API for XML Parsing)的XML解析服务 Web Services - J2EE 1.4规范新特性 ············

Web组件

Servlet技术 Servlets(=Server +Applet):是一些运行于Web服务器端的Java小程序,用来扩展Web服务器的功能。 Servlets用特定的Java解决方案替代了其它的Web服务器方编程模式(如:CGI,ISAPI等),继承了Java的所有特性(跨平台、多线程、OO),能够访问整个Java API库。 Servlets使用HTTP协议与客户端进行通讯,所以有时也称Sevlets为“HTTP Servlets”。

请求的处理 每当有客户请求时,容器会将其封装成一个HttpServletRequest对象,然后传给Servlet对应的服务方法,有doGet, doPost等 GET调用:获取服务器信息,并将其作为响应返回给客户端 POST调用:用于客户端把数据传到服务器

HTTP Servlet请求

1加载,实例化和初始化servlet: 容器首先判断servlet的实例是否存在,若不存在,则容器加载该servlet,并从该servlet类创建实例.接着,容器调用init方法对该servlet实例进行初始化 2调用该servlet的service方法: 假定该servlet实例存在,且已进行了初始化.则容器调用service方法,用其将一个请求对象和一个响应对象传给该servlet.

3 清除servlet的响应,将控制权返回给web服务器: Servlet处理了请求后,响应被交给容器。在容器将控制权返回给web服务器前,会将响应清除,然后由web服务器将该响应传送给客户

public class SimpleCounter extends HttpServlet { int count = 0; public void doGet(HttpServletRequest req, HttpServletResponse res) { res.setContentType("text/plain"); //建立输出的类型 PrintWriter out = res.getWriter(); //得到输出流 int local_count; synchronized(this) { //local_count在多线程环境下同步 local_count = ++count; } //构造一个返回给客户浏览器的HTML页 out.println("<HTML>"); out.println("<HEAD><TITLE= A Simple Counter </TITLE></HEAD>"); out.println("<BODY>"); out.println("<h5 align=\"center\">" + "<font color=\"#0000FF\">"); out.println("Since Web server has startuped, the servlet has been accessed " + "<h1>" + local_count + " times" + "</h1>"); out.println("</font></h5>"); out.println("</BODY></HTML>"); }

JSP技术 在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp) JSP是服务器端的脚本语言,是以Java和Servlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet。 JSP由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。 一般和JavaBeans结合使用,从而将界面表现和业务逻辑分离。

JSP生命周期 翻译:建立JSP请求时,容器寻找相应servlet类,若相应类不存在,则该JSP页面由其容器动态翻译成servlet代码,接着编译成java代码 编译:java代码被编译成servlet类 执行:由容器调用 下同serlvet

<%@ page import=" java.math.*, javax.naming.*" %> <html> <head> <title>Converter</title> </head> <body bgcolor="white"> <p>Enter an amount to convert:</p> <form method="get"> <input type="text" name="amount" size="25"> <br> <p> <input type="submit" value="Submit"> <input type="reset" value="Reset"> </form> <% String amount = request.getParameter("amount"); if ( amount != null && amount.length() > 0 ) { BigDecimal d = new BigDecimal (amount); %> <p> <%= amount %> dollars are <%= converter.dollarToYen(d) %> Yen. <p> <%= amount %> Yen are <%= converter.yenToEuro(d) %> Euro. <%}%> </body></html>

Servlet容器 浏 览 器 servlet EJB JSP EJB servlet 1客户端经由HTTP进行请求 2 web server将请求传送给容器 3 容器执行servlet 4 servlet产生响应(根据需要同其他web组件和业务组件进行交互) 5 web sever将响应返回给客户

Java Servlet和JSP的比较 两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程、OO ),都可以使用Java强大的API。 两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。 两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接。 都是Web服务器的功能扩展,Servlet创建动态页面;JSP可动态,静态创建页面 Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。

JavaBean技术 JavaBean是基于Java的组件模型,类似于Microsoft的COM组件。 JavaBean传统的应用在于可视化的领域,如AWT下的应用。自从JSP诞生后,JavaBean更多的应用在了非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。

Java Bean-SimpleBean.java package hall;   public class SimpleBean {   private String message = "No message specified";   public String getMessage() {   return(message);   }   public void setMessage(String message) {   this.message = message;

Java Bean-BeanTest.jsp <HEAD>   <TITLE>Reusing JavaBeans in JSP</TITLE> </HEAD> <BODY>   <CENTER>   <TABLE BORDER=5>   <TR><TH CLASS="TITLE">   Reusing JavaBeans in JSP</TABLE>   </CENTER>   <P>   <jsp:useBean id="test" class="hall.SimpleBean" />   <jsp:setProperty name=“test”  property="message“  value="Hello WWW" />   <H1>Message: <I>   <jsp:getProperty name="test" property="message" /> </I> </H1> </BODY>

Java Bean Reusing JavaBeans in JSP   Message:Hello WWW