1、课程性质:课程性质: JSP Web应用程序实用性强,应用面广。应用程序实用性强,应用面广。 JSP基于基于Java体系,具备面向对象,与平台无关性,安体系,具备面向对象,与平台无关性,安全可靠,简单易用等特点。全可靠,简单易用等特点。 JSP所具有的技术优势和特色受所具有的技术优势和特色受到欢迎,使其成为到欢迎,使其成为Web应用开发和网页技术的主要选择。应用开发和网页技术的主要选择。教学目的:教学目的: 通过本课程的学习,掌握基本的通过本课程的学习,掌握基本的JSP开发技术,并能直开发技术,并能直接应用到今后的接应用到今后的Web应用开发中。应用开发中。2本讲主要内容本讲主要内容v什么是什
2、么是Web应用程序?应用程序?vWeb发展的三个阶段发展的三个阶段v动态网页编程技术动态网页编程技术CGI、ASP、PHP、JSP简介简介vJSP的运行原理的运行原理vHTTP请求地址请求地址URLvHTTP请求和请求和HTTP响应响应3桌面应用程序桌面应用程序 Windows 媒体播放器用户选择一个 MP3 文件媒体播放器播放 MP3 文件用用 户户4桌面应用程序桌面应用程序 用户Windows 媒体播放器请求 = 选择要播放的文件用户发送一个请求播放器发送一个响应响应 = 媒体播放器播放选定的文件媒体播放器是桌面应用程序的一个示例5Web 应用程序应用程序 1位于 Web 服务器上的网站
3、6Web 应用程序应用程序 1Web 应用程序应用程序Web 应用程序在 Web 服务器上运行 Web 应用程序的优点: 访问 Web 应用程序更容易 维护和部署成本低 播放一首歌作为响应用户请求播放一首歌7Web 应用程序应用程序 2位于 Web 服务器上的网站 http:/ Web应用程序一应用程序一般是般是B/S模式。模式。9C/S(Client/Server)结构(一)结构(一)v 服务器通常采用高性能的服务器通常采用高性能的PC、工作站或小型机,、工作站或小型机,并采用大型数据库系统。并采用大型数据库系统。v 客户端需要安装专用的客户端软件,需要实现客户端需要安装专用的客户端软件,需
4、要实现绝大多数的业务逻辑和界面展示,是一种胖客户绝大多数的业务逻辑和界面展示,是一种胖客户端的架构;端的架构;10v优点:优点:1.能充分发挥客户端能充分发挥客户端PC的处理能力,很多的处理能力,很多工作可以在客户端处理后再提交给服务器;工作可以在客户端处理后再提交给服务器; 2.数据库服务器运行数据负荷较轻数据库服务器运行数据负荷较轻 ;v缺点:缺点:1.只适用于局域网只适用于局域网 ;2.高昂的维护成本且投资大高昂的维护成本且投资大 ;C/S(Client/Server)结构结构(二)二)11B/S(Browser/Server)结构(一)结构(一)v Browser指的是指的是Web浏览
5、器,极少数事务逻辑在浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。前端实现,但主要事务逻辑在服务器端实现。v 该结构的主要特点是该结构的主要特点是“瘦客户端瘦客户端”。12B/S(Browser/Server)结构(二)结构(二)v优点:优点:1.不用安装任何专门的软件不用安装任何专门的软件 ;2.维护和升级方式简单维护和升级方式简单 ;v缺点:缺点:1.Web服务器运行数据负荷较重服务器运行数据负荷较重 ;2.建立在广域网之上,建立在广域网之上, 对安全的控制能力对安全的控制能力较弱;较弱;13为什么学习为什么学习B/S技术技术C/S的局限性的局限性中心中心局域网局域网特定
6、用户群中资源共享特定用户群中资源共享 B/S带给我们的全新体验带给我们的全新体验数据库数据库服务器服务器学生机学生机1 1学生机学生机2 2学生机学生机n n需要安装客需要安装客户端软件户端软件Google服务器服务器Internet全球用户群中资源共享全球用户群中资源共享 美国用户美国用户中国用户中国用户数据库数据库服务器服务器无需安装客无需安装客户端软件户端软件14B/S模式特点模式特点vB/S中浏览器端与服务器端采用中浏览器端与服务器端采用请求请求/响应响应模式进行交互模式进行交互应用应用服务器服务器数据库数据库服务器服务器IEIE解释执行解释执行HTML文件文件从服务器端检索到的信息从
7、服务器端检索到的信息返回响应返回响应客户端的请求信息客户端的请求信息发送请求发送请求访问数据库访问数据库返回结果返回结果运行运行JSP等服务器等服务器端脚本程序端脚本程序1用户输入用户输入23415Web应用程序开发的两大平台应用程序开发的两大平台 Java EE平台与平台与.NET平台平台vJava EE全称为全称为Java Enterprise Edition;vJava EE是一个开发平台,提供一组集成是一个开发平台,提供一组集成的企业的企业API库和开发工具;库和开发工具;16Java Web编程的主要组件技术编程的主要组件技术vJava WebJava Web应用程序通常是由多种组件
8、构成的。应用程序通常是由多种组件构成的。1.1.表示层组件表示层组件通常由通常由HTML HTML 和和JSP JSP 页面构页面构建建. .2.2.控制层组件控制层组件一般是一般是ServletServlet。3.3.业务逻辑层组件业务逻辑层组件是是JavaBeanJavaBean或或EJBEJB。4.4.数据访问层组件数据访问层组件是是JDBCJDBC,Hibernate Hibernate 或或CMPCMP。17本讲主要内容本讲主要内容v什么是什么是Web应用程序?应用程序?vWeb发展的三个阶段发展的三个阶段v动态网页编程技术动态网页编程技术CGI、ASP、PHP、JSP简介简介vJS
9、P的运行原理的运行原理vHTTP请求地址请求地址URLvHTTP请求和请求和HTTP响应响应18Web发展的三个阶段发展的三个阶段静态网页静态网页v静态网页以静态网页以HTML语言编写,保存在语言编写,保存在Web服务器服务器上,上,客户端客户端浏览器浏览器Web服务器服务器Http请求请求Http应答应答静态网页静态网页19Web发展的三个阶段发展的三个阶段 客户端动态网页客户端动态网页v以以DHTML和和其它客户端交互技术其它客户端交互技术编写的网页;编写的网页;vDHTML(Dynamic HTML)是一种通过结合)是一种通过结合HTML、客户端脚本语言(、客户端脚本语言(JavaScr
10、ipt、VBScript)、层叠样式表()、层叠样式表(CSS)和文档对象模)和文档对象模型(型(DOM)来创建动态网页内容的技术总称。)来创建动态网页内容的技术总称。v其它客户端交互技术有:其它客户端交互技术有:Flash、ActiveX、Java Applet等。等。 20Web发展的三个阶段发展的三个阶段 Web应用程序应用程序21本讲主要内容本讲主要内容v什么是什么是Web应用程序?应用程序?vWeb发展的三个阶段发展的三个阶段v动态网页编程技术动态网页编程技术CGI、ASP、PHP、JSP简介简介vJSP的运行原理的运行原理vHTTP请求地址请求地址URLvHTTP请求和请求和HTT
11、P响应响应22CGI公共网关接口公共网关接口(Common Gateway Interface)vCGI不是一种程序语言,是一种基于浏览器的不是一种程序语言,是一种基于浏览器的输入,在输入,在Web服务器上运行相应程序的技术标服务器上运行相应程序的技术标准;准;vCGI是是Web服务器调用外部程序的一个接口,服务器调用外部程序的一个接口,通过通过CGI,Web服务器将用户从浏览器中录入服务器将用户从浏览器中录入的数据作为参数,运行本机上的程序,并把运的数据作为参数,运行本机上的程序,并把运行结果通过浏览器返回给用户;行结果通过浏览器返回给用户;23CGI的工作原理的工作原理效率低下,每次页面被
12、请求的时候,都要求服务效率低下,每次页面被请求的时候,都要求服务器重新将器重新将CGI程序编译成可执行的代码。程序编译成可执行的代码。24ASP动态服务器网页(动态服务器网页(Active Server Page)v是一套微软公司开发的运行于服务器端的脚本是一套微软公司开发的运行于服务器端的脚本平台,内含于平台,内含于IIS中。中。v是用是用HTML语言、脚本语言、语言、脚本语言、ASP组件及对象组件及对象设计动态网页的技术;设计动态网页的技术;v缺点:缺点:运行速度慢:运行速度慢:ASP脚本每次被请求,都需编脚本每次被请求,都需编译执行;译执行;平台适应性差:局限于微软的操作系统平台;平台适
13、应性差:局限于微软的操作系统平台;25PHP(Personal Home Pages)v是内嵌于是内嵌于HTML中的服务器脚本编程语言。中的服务器脚本编程语言。v优点:优点:开放源代码;开放源代码;多平台支持;多平台支持;安全性高;安全性高;v缺点:缺点:对各种数据库没有统一的接口标准;对各种数据库没有统一的接口标准;没有大公司支持;没有大公司支持;运行环境安装相对复杂;运行环境安装相对复杂;26JSP(Java Server Pages)v是是Sun Microsystems倡导,多家公司参与建立的一种倡导,多家公司参与建立的一种动态网页技术标准。动态网页技术标准。vJSP是一个纯是一个纯J
14、ava平台的技术,主要用来产生动态网页平台的技术,主要用来产生动态网页的内容;的内容;vJSP是是Java EE系统中的系统中的Web层技术,负责动态生成用层技术,负责动态生成用户界面。户界面。vSUN公司公司1998年推出年推出JSP0.9版本版本v1999年推出年推出1.1版本版本v2000年推出年推出1.2版本版本v现在流行的是现在流行的是JSP2.0版本。版本。27JSP的特点的特点1.一次编写,到处运行一次编写,到处运行2.系统的多平台支持系统的多平台支持u几乎所有平台都支持几乎所有平台都支持JSP、Apache;3.可重复使用的组件可重复使用的组件4.内容和显示分离内容和显示分离5
15、.采用标签简化页面采用标签简化页面6.健壮的存储管理和安全性健壮的存储管理和安全性28本讲主要内容本讲主要内容v什么是什么是Web应用程序?应用程序?vWeb发展的三个阶段发展的三个阶段v动态网页编程技术动态网页编程技术CGI、ASP、PHP、JSP简介简介vJSP的运行原理的运行原理vHTTP请求地址请求地址URLvHTTP请求和请求和HTTP响应响应29JSP的运行原理的运行原理v在在JSP运行过程中,首先由客户端发出请求,运行过程中,首先由客户端发出请求,Web服务器接收到请求后,服务器接收到请求后,Web服务器对服务器对JSP代代码进行以下码进行以下3个操作过程:个操作过程:第一:代码
16、转化第一:代码转化,把把JSP文件转换成文件转换成Servlet;第二:编译第二:编译, Java编译器把编译器把Servlet编译成字节编译成字节码;码;第三:执行第三:执行, Java虚拟机执行字节码文件;虚拟机执行字节码文件;v3个条件:个条件:JSP引擎、引擎、Java编译器和编译器和Java虚拟机。虚拟机。30JSP的运行原理的运行原理客户端客户端 带有带有JSP引擎的引擎的Web服务器服务器 JSP文件文件 Servlet代码代码 Class文件文件 客户端通过浏览器向服务器客户端通过浏览器向服务器发出请求,在该请求中包含发出请求,在该请求中包含了请求的资源的路径,这样了请求的资源
17、的路径,这样当服务器接收到该请求后就当服务器接收到该请求后就可以知道被请求的资源可以知道被请求的资源请求请求响应响应Web服务器加服务器加载被请求的载被请求的JSP文件文件加载加载转化转化JSP引擎将被加载的引擎将被加载的JSP文件转化为文件转化为Servlet编译编译执行执行Java编译器将生成编译器将生成的的Servlet代码编译代码编译成成Class文件文件Java虚拟机执虚拟机执行这个行这个Class文件文件服务器将执行结果服务器将执行结果发送给浏览器进行发送给浏览器进行显示显示31JSP开发开发Web站点主要有以下几种方式:站点主要有以下几种方式:1.1.直接使用直接使用JSP JS
18、P :最小型的:最小型的WebWeb站点站点2.2.JSP+ JavaBean JSP+ JavaBean :中型站点:中型站点3.3.JSP+ JavaBean+Servlet JSP+ JavaBean+Servlet 4.4.J2EEJ2EE开发模型开发模型5.5.SSHSSH开发框架开发框架 32本讲主要内容本讲主要内容v什么是什么是Web应用程序?应用程序?vWeb发展的三个阶段发展的三个阶段v动态网页编程技术动态网页编程技术CGI、ASP、PHP、JSP简介简介vJSP的运行原理的运行原理vHTTP请求地址请求地址URLvHTTP请求和请求和HTTP响应响应33URLUniform
19、 Resource LocatorvURL: Uniform Resource Locator,统一资源定位统一资源定位符,也称网址。符,也称网址。vWeb上的每一个网页都有一个唯一的名称标识,上的每一个网页都有一个唯一的名称标识,通常称之为通常称之为URL地址。地址。vhttp:/ file?query#fragment协议协议:/主机名主机名:端口号端口号/网站名称网站名称/目录目录/文件名文件名?查询参数查询参数#信息片断信息片断例如:例如:http:/:80/chpage/index.html?str=abc#a135本讲主要内容本讲主要内容v什么是什么是Web应用程序?应用程序?vW
20、eb发展的三个阶段发展的三个阶段v动态网页编程技术动态网页编程技术CGI、ASP、PHP、JSP简介简介vJSP的运行原理的运行原理vHTTP请求地址请求地址URLvHTTP请求和请求和HTTP响应响应36HTTP请求请求vHTTP请求的格式请求的格式HTTP请求方法请求方法HTTP请求方法请求方法 请求的目标资源请求的目标资源 HTTP/版本号版本号头部字段头部字段空行空行消息主体消息主体GET、POST最常用最常用HEAD返回指定文档的头部信息返回指定文档的头部信息PUT利用随附的数据来替换指定的文档利用随附的数据来替换指定的文档DELETE删除指定文档删除指定文档37HTTP请求请求v头
21、部字段:头部字段:Accept:浏览器可接受的浏览器可接受的MIME类型。类型。Host:主机名称和端口。主机名称和端口。 If-Modified-Since:只有当所请求的内容在指只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答。应答。Content-Length:表示请求消息正文的长度。表示请求消息正文的长度。 38HTTP请求请求vHTTP请求的格式:请求的格式:post /tree2.jsp http/1.1Host:localhost:8080Accept-encoding:gzip,defl
22、ate请求行请求行http头头信息体信息体39HTTP响应响应vHTTP响应的格式响应的格式v状态行:表示请求是否被理解或被满足。状态行:表示请求是否被理解或被满足。HTTP版本由服版本由服务器决定。请求被正常响应时,状态码一般由系统自动设务器决定。请求被正常响应时,状态码一般由系统自动设置为置为200。v一些响应报头:除了一些响应报头:除了Content-Type之外的所有应答头都之外的所有应答头都是可选的。是可选的。v空行:起分隔、标识作用。空行:起分隔、标识作用。v内容文档:数据报内容,封装在内容文档:数据报内容,封装在HTTP协议中。协议中。HTTP/版本号版本号 状态代码状态代码 对状态代码的简单描述对状态代码的简单描述响应头部字段响应头部字段空行空行响应内容主体响应内容主体状态行状态行40HTTP响应响应vHTTP/1.1 200 OKvContent-Type: text/html;charset=ISO-8859-1vHello World!状态行状态行响应头部响应头部空行空行内容文档内容文档状态代码状态代码41常用的状态代码常用的状态代码v分为分为5类:类:1yy、2yy、3yy、4yy、5yy200:请求成功;:请求成功;404:请求的资源不可用;:请求的资源不可用;500:服务器内部发生错误,不能服务。:服务器内部发生错误,不能服务。42Thank you!