第二讲 Java Servlet技术.

Slides:



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

LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Web Maple— 云端计 算 数学学院刘海洋 胡婷婷. 需求 什么是 Web Maple ? Maple : “ 数学家的软件 ” 符号和数值计算 动态编程语言 集成编辑环境与图形输出 Web Maple :网页上的数学家 完整的 Maple 功能 云端计算 网页独特的输入输出格式.
淮海工学院 计算机课程 第 1 章 Java 入门 1.1 Java 的起源与发展 1.2 Java 程序开发与运行环境 1.3 Java 程序设计步骤 1.4 Java 程序的构成 一个小游戏.
第16章 代理模式 Website:
动态Web开发技术--JSP.
Chapter 5: Service-Oriented Architectures for Distributed Computing 面向服务的分布式体系结构 1.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
第一章 JSP概述.
第1章 Java语言概述.
第三章 網際網路和全球資訊網 : 電子商務基礎建設
基于SSH的web开发 AND 企业级WEB应用开发新技术
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
MVC Servlet与MVC设计模式.
第八讲 J2EE安全机制.
计算机学院计算机科学与技术系 中德联合软件技术研究所 李波
J2EE Struts 和Spring 的区别.
建设数字化的卫生监督体系 深 圳 市 卫 生 监 督 所 2006年4月.
大型主机应用上的开放系统和中间件 2011年度教育部-IBM精品课程
第七章 电子政府的支撑技术 制作人:王 静.
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
J2EE与中间件技术 ——Lab.
移动开发的灵便迭代之道 黄凯.
第9章 过滤器和监听器技术 过滤器(Filter)和监听器(Listener)是两种特殊的Servlet技术。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。监听器可以用来对Web应用进行监听和控制的,增强Web应用的事件处理能力。 本章主要介绍过滤器和监听器的编程接口、基本结构、信息配置、部署和运行,最后通过案例说明过滤器和监听器的典型应用。
Design Patterns Lecture 4.
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
JSP程式設計 基本概論 歐陽芳泉 Fang-Chuan Ou Yang
國立台灣師範大學 資訊教育系 葉耀明 從SCORM數位學習到ebXML儲存庫 國立台灣師範大學 資訊教育系 葉耀明
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
J2EE 培训课程.
AJAX基础.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
Java Applet 介绍.
专题一 Servlet技术 案例一简单计数器.
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.
運籌管理 Chapter 12 資訊科技與運籌管理電子化 祝天雄 博士 99年12月 日.
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
第二讲 搭建Java Web开发环境 主讲人:孙娜
高级Web技术 复 习.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
第5章 方案工程(Solutions Engineering)
Oracle Containers for J2EE(OC4J) 独立版
软件服务生态中的非确定性科学问题、互操作性的应用基础问题
Visual Studio Team System 简介
設計網際網路技術為基礎的跨機構資訊交換平台 --以RoHS為例
第 13 章 體驗Web Service.
第一讲 J2EE基础 博和利初级培训 —开发技能.
第5章 方案工程(Solutions Engineering)
Servlet 12学时 1.
第11章 Android客户端与服务器交互.
DevDays ’99 The aim of this mission is knowledge..
01.Java语言概述 讲师:复凡.
SOA – Experiment 2: Query Classification Web Service
电子商务 王素凤
第1章 Java语言概述 学习目标 本章要点 上机练习 习 题.
第 1 章 簡介XML.
史忠植 王嘉 董明楷 张海俊 智能信息处理实验室 中国科学院计算技术研究所
JSP程序设计 第9章 Servlet简介.
第十二章 过滤器.
IEEM 5352 Enterprise Integration
Delphi 7.0开发示例.
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
第21章 Spring 的MVC框架 Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。
Presentation transcript:

第二讲 Java Servlet技术

本节内容 Servlet的概念 Servlet是什么 Servlet做什么 MVC模式 Servlet的功能 wuhan

本节内容(续) Servlet的使用 Servlet编程 Servlet API Servlet的生命周期 Servlet的应用

Servlet——最主要的Java Web应用组件之一

Servlet 的概念(续) 什么是Servlet 在Web服务器端加载并运行的Java小程序 具体运行在Servlet引擎管理的JVM上。 Servlet容器负责Servlet和用户的通信以及调用Servlet的方法。 Servlet和用户的通信采用请求/响应模式。 以动态形式扩展Web服务器(Web container)的功能。

Servlet 的概念(续) 以线程形式处理用户请求。 创建并返回基于客户请求的动态HTML页面。 可与其它服务器资源(如数据库或基于Java的应用程序)进行通信。 与Applet比较。

Servlet 的概念(续) Servlet的优点(vs CGI和类CGI开发语言) (1)功能强大 (2)跨平台性好。 (3)开发难度低。 与客户端交互,直接与服务器交互,与不同的应用程序交换数据,使得与数据库的连接变得十分容易。 (2)跨平台性好。 (3)开发难度低。

Servlet 的概念(续) (4)执行效率高。 (5)性能优化。 Servlet是开发服务器端应用程序的一个很好选择, Servlet与JSP结合使用,能提供更强大的服务器端功能。

MVC模式 交互式应用程序广泛使用的一种体系结构。 将传统的输入处理和输入模型转化为图形显示的用户交互模型。

MVC模式 MVC体系结构的三个层次 模型(Model) 控制(Controller) 视图(View)

MODEL1 1 JSP 浏览器 请求 4 响应 2 3 JavaBean 应用服务器 企业服务器/数据源 特点: JSP页面独自响应请求,并将结果返回给客户, 也有表现与处理的分离(Bean处理数据)。 应用服务器 企业服务器/数据源

MODEL2 1 (Controller) 请求 Servlet 浏览器 2 3 (Model) 5 (View) 响应 JSP 实 例 化 2 3 5 (Model) (View) JSP 响应 JavaBean 特点:面向动态内容的实现,结合Servlet与JSP技术。JSP表示页面,Servlet完成处理逻辑。根据用户的行为决定将哪个JSP发给用户。 4 企业服务器/数据源 应用服务器

Servlet 的功能 处理表单(URL中?后面的部分,发送到服务器端)。 处理HTTP请求头。 处理CGI变量(各种有关请求的信息)。 处理状态代码(设置状态码,根据状态码重定向页面)。 按照MVC模式, Servlet主要用作C(ontroler),JSP用作View,Model由Bean来承担。

Servlet编程 —Servlet API Servlet的框架由两个Java包组成: javax.servlet javax.servlet.http 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的接口或类。 在javax.servlet.http包中定义了采用HTTP协议进行通信的Httpservlet类。

Servlet编程 —Servlet API (续) Servlet框架核心是javax.servlet.Servlet接口,所有的Servlet都必须实现该接口。 在Servlet接口中定义了5个方法,其中三个代表Servlet的生命周期: init()—负责初始化Servlet对象。 service()—负责响应客户请求。 destroy()—当Servlet对象退出时,负责释放占用的资源。

Servlet API 《Interface》 javax.servlet.ServletConfig getInitParameter() getServletContext() getInitParameterNames() 《Interface》 javax.servlet.Servlet init() getServletConfig() Service() getSerletInfo() destroy() java.io.serializable javax.servlet.GenericServlet getServletContext() getInitParameter() getInitParameterNames() log() getSerletInfo() init() getServletConfig() service() destroy() javax.servlet.http.HttpcServlet doDelete() doGet() doOptions() doPost() doPut() doTrace() doLastModified() service() Servlet API

Servlet编程 —Servlet API (续) GenericServlet类 HttpServlet类

Servlet编程 —Servlet API (续) 如果Servlet类扩充GenericServlet类,则必须实现service()方法。

Servlet编程 —Servlet API (续) GenericServlet类中的service方法为抽象的方法,该方法的声明形式为: public abstract void service(ServletRequest req, ServletResponse res) throws servletException, IOException。 Servlet容器将客户的请求信息封装在ServletRequest对象中,传给service方法;service方法将响应客户的结果通过ServletResponse对象传给客户。

Servlet编程 —Servlet API (续) protected void service(HttpServletRequest req, HttpServletResponse res) throws servletException, IOException。

Servlet编程 —Servlet API (续) HttpServlet的service方法首先从HttpServletRequest对象中获取HTTP请求方式的信息,然后再根据请求的方式调用相应的方法。 例如,如果请求的方式为GET,那么调用doGet()方法;如果请求的方式为POST,那么调用doPost()方法。

Servlet编程 —Servlet API (续) 两类参数类之间有继承关系。 有各自的一些方法。

Servlet编程 —Servlet编程 Servlet实现javax.servlet.Servlet接口。 编写Servlet程序可以直接实现interface,但因为目前大多数Servlet是针对HTTP协议的Web服务器,所以通过从HttpServlet 继承来编写Servlet程序,根据请求方式是GET还是POST,覆盖doGet、doPost方法之一或全部。

创建Httpservlet的步骤 创建用户自己的Httpservlet ,通常涉及以下4个步骤 扩展Httpservlet抽象类。 覆盖Httpservlet抽象类的部分方法。 获取HTTP请求信息。 生成HTTP响应结果。

Servlet的基本结构 下面的代码显示了一个简单Servlet的基本结构,该Servlet处理的是GET请求: import java.io.*;   import javax.servlet.*;   import javax.servlet.http.*;

Servlet的基本结构(续) public class SomeServlet extends HttpServlet {    public void doGet(HttpServletRequest request,    HttpServletResponse response)    throws ServletException, IOException {    // 使用“request”读取和请求有关的信息(比如Cookies) //和表单数据    // 使用“response”指定HTTP应答状态代码和应答头    // (比如指定内容类型,设置Cookie)     PrintWriter out = response.getWriter();    // 使用 “out”把应答内容发送到浏览器    } }

一个简单的Servlet实例 HelloWorld.java: import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

一个简单的Servlet实例(续) public class HelloWorld extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); out.println("<html><body><h1>Hi,HelloWorld.</h1>"); out.println("<body bgcolor=\"blue\">"); out.println("</body></html> "); } }

一个简单的Servlet实例(续) HttpServletRequest 提供访问有关请求的信息的方法,例如表单数据、HTTP请求头等等。 HttpServletResponse 除了提供用于指定HTTP应答状态(200,404等)、应答头(Content-Type,Set-Cookie等)的方法之外,最重要的是它提供了一个用于向客户端发送数据的PrintWriter。

编译、部署、执行Servlet程序 程序员需要编写Servlet并将其部署到相应的容器中。 Servlet是Java类,需要进行编译才能使用。

编译、部署、执行Servlet程序(续) 用Javac 编译成HelloWorld.class文件 用户环境变量 TOMCAT_HOME:D:\Tomcat5.0 CLASSPATH:D:\j2sdk1.5.0\lib\tools.jar; D:\j2sdk1.5.0\lib\dt.jar;D:\Tomcat5.0\comm on\lib\servlet.jar; 为便于查找文件,可设置path变量 编译含import javax.servlet.*;的程序必须在 classpath中加入第三方组件servlet.jar(tomcat中包含)。

编译、部署、执行servlet程序(续) 在webapps下创建一个应用(即一个文件夹),如MyServlet。 在MyServlet目录下新建WEB-INF文件夹,再在此目录下新建classes目录,classes目录用来存放编译后的Servlet文件。 其中的\WEB-INF\web.xml的最简单形式为

<web-app> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>

使用 可在IE中直接访问 http://localhost:8080/MyServlet/hello If error Try http://127.0.0.1:8080/MyServlet/hello

运行结果:

Servlet的生命周期 Servlet的生命周期开始于被装载到Servlet容 器中,结束于被终止或重新装入时。 初始化阶段; 服务阶段; 终止阶段。

Servlet的生命周期(续) 初始化阶段 在下列情形下Servlet容器装入Servlet,创建一个Servlet实例,调用Servlet的init()方法对Servlet实例初始化: Servlet容器启动时。 在Servlet容器启动后,客户首次向Servlet发出请求。 Servlet的类文件被修改后,重新加载。

Servlet的生命周期(续) 服务阶段 如果容器接收到对此Servlet的请求,那么它调用Servlet的service()方法。 service()方法中调用doGet()或doPost()。 终止阶段 实例被销毁,通过调用Servlet的destory()方法来销毁Servlet。

Servlet处理请求的过程 用户从客户机将HTTP请求发送给web服务器。 web服务器将该请求发送给Servlet。

Web Client Servlet Container HttpServlet Request HttpServlet Response HttpServlet 1.send HTTP request 2.parse HTTP request 3.new Instance 4.new Instance 5.call service method 6.get request information 7.output response information 8.send HTTP response Servlet容器响应Web客户请求的时序图

Servlet处理请求的过程(续) Servlet被发来的第一个请求激活,然后继续运行于后台,以线程形式处理请求,速度非常快,直到Servlet被修改时才再次加载。

Servlet 的调用方式 通过URL从浏览器调用 通过HTML中的链接调用

Servlet的应用 结合教材示例上机实验 杜克的Bookstore应用程序

小结 Servlet的概念 Servlet的简单编程 Servlet的生命周期 Servlet的应用

附:Java技术中的缩写及含义 EJB:  Enterprise  JavaBeans  企业JavaBean组件   IDL:    Interface  Definition  Language  接口定义语言   J2EE CA:J2EE Connector Architecture J2EE 连接器架构 JAAS  :   The Java Authentication and Authorization Service  java认证授权服务 JACC: Java Authorization Contract with the Container Java容器授权合约

附: Java技术中的缩写及含义(续) JATMI:Java Application-to-Transaction Monitor Interface Java 应用-事务监控接口 JBI   :   Java Business Integration Java业务集成 JCA   :  J2EE Connector Architecture Java连接器架构 JCP   :  Java Community Process Java组织 JDBC : Java Database Connectivity JDO   :Java Data Objects

附:Java技术中的缩写及含义(续) JDK:Java Development Kit JEMS : JBoss Enterprise Middleware Suite Jboss企业中间件 JMS :   Java Messaging Service Java消息服务 JMX   :Java Management extensions Java管理扩展 JNDI  : Java Naming and Directory Interface Java命名与目录借口服务 JPDA:  Java Platform Debugger Architecture Java平台调试器架构 JRMP:Java Remote Message Protocol

附:Java技术中的缩写及含义(续) JSP:   Java Server Page JSTL:Java Standard Tag Library Java 标准标签库 JTS:   Java  Transaction  Service  Java事务服务 JTA :    Java Transaction API Java事务API JVM  :  Java Virtual Machine Java虚拟机 MVC:   Model-View-Control

附:Java技术中的缩写及含义(续) NIC:   Network Interface Card O/R:   Object-Relational OTS:   Object Transactional Services PKI:   Public Key Infrastructure POJO:  Plain Old Java Object RMI:   Remote  Method  Invocation  远程方法调用  RMI/IIOP:RMI protocol over IIOP

附:Java技术中的缩写及含义(续) BPEL  :   Business Process Execution Language 业务流程执行语言 BPM   :   Business Process Management 业务流程管理 DAO   :  Database  Access  Object  数据库访问对象   DOM  :   Document Object Model  文档对象模型 DTD :     Document Type Definition  文档类型定义 DTO   :  Data  Transport  Object  数据传输对象   ESB :     EnterpriseService Bus 企业服务总线 POJO :  Proterozoic  Java  Object  Java原生对象  

附:Java技术中的缩写及含义(续) SAAJ:   SOAP with Attachments API for JavaTM  Java 的带附件的SOAP API SAX :    Simple API for XML Parsing XML解析处理简单API SAML:    Security Assertions markup Language SGML  :  Standard Generalized Markup Language  SAML(Security Assertion Markup Language )安全断言标记语言 SLA:      Service Level Agreement服务级别协议

附:Java技术中的缩写及含义(续) SNMP:    Simple Network Management Protocol简单网络管理协议 SOA :    Service Oriented Architecture SOAP:    Simple Object Access Protocol SPENGO:Simple and Protected GSS-API Negotiation Mechanism 简单和受保护的GSS-API协商机制 SPI:     Service Provider Interface )服务提供模块接口 SSL:     Secure Socket Layer安全套接字层 SSO:     Single Sign-on单点登录

附:Java技术中的缩写及含义(续) SSPI:    Security Service Provider Interface安全服务提供模块接口 StAX:    Streaming API for XML XML 的流化API UDDI:    Universal Description,Discovery,and Integration VO   :    Value  Object  值对象   WFMS:  workflow management system WSDL:   Web Service Description Language

附:Java技术中的缩写及含义(续) WSEE:  Web Services Enterprise Edition WSRP:  OASIS Web Service for Remote Portlets XA:      Extended Architecture 扩展架构 XACML:  XML Access Control Markup Language XML 访问控制标记语言 XSLT:   XML Stylesheet Language for Transformations

下课了。。。 休息一会儿。。。