chapter03-web应用的核心技术

上传人:F****n 文档编号:88254183 上传时间:2019-04-22 格式:PPT 页数:36 大小:123KB
返回 下载 相关 举报
chapter03-web应用的核心技术_第1页
第1页 / 共36页
chapter03-web应用的核心技术_第2页
第2页 / 共36页
chapter03-web应用的核心技术_第3页
第3页 / 共36页
chapter03-web应用的核心技术_第4页
第4页 / 共36页
chapter03-web应用的核心技术_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《chapter03-web应用的核心技术》由会员分享,可在线阅读,更多相关《chapter03-web应用的核心技术(36页珍藏版)》请在金锄头文库上搜索。

1、第三章 Web应用的核心技术,第一讲:用于电子商务的 Web技术概述 作者:丁晓诚,电子商务Web应用模型,应用特点:面向大量用户,进行在线事务处理。 核心问题:如何面向大量用户?怎样进行在线事务处理?,Web 服务器,浏览器,浏览器,属于Web技术的部分,Internet协议:以HTTP协议为代表,面向HTML页面传输。 Web浏览器:一个客户端应用程序。通过Internet协议从Web服务器端获取数据或代码,并予以显示或解释执行。 Web 服务器:通过Internet协议,响应用户请求。由一个专职倾听和应答用户请求消息的守护进程和若干提供特定服务的服务进程组成。,HTTP协议,对话双方:浏

2、览器应用程序 vs. HTTP守护进程。 分为四个步骤:打开连接-请求-响应-关闭连接。 是一次一个回合的一对一对话。 HTTP用于HTML页面传输:服务器依据客户请求中的条件,返回一个页面给客户。,浏览器端技术,基础:标记语言解释器:HTML、XML 扩展: 脚本语言解释器:JavaScript和VBScript 下载程序运行:Java Applet、ActiveX,服务器端技术,基本服务:从文件系统中返回静态页面。 扩展服务支持页面的动态生成: 服务器端程序加载技术: 公共网关接口 (CGI) 插件技术: NSAPI、ISAPI Servlet 服务器端脚本技术: Livewire、ASP

3、、JSP,公共网关接口(CGI),最早的动态页面生成技术:HTTP守护进程与网关程序之间的通信协议。 激活服务器端的某个程序,从已经被重定向到HTTP守护进程的标准输入或环境变量读入参数,产生一个服务进程并执行,结果生成一个HTML文本,并向同样被重定向了的标准输出写出。,CGI举例Hello, You!,HTML页面中的表单: My name is 服务器虚拟目录/cgi-bin下的greeting.exe(源码): #include void main() char s100; scanf(“%s“, ,CGI缺点,(1)一次用户请求产生一个进程,占用资源过多,难以用于处理大量用户的密集请

4、求。 (2)CGI进程间通信十分困难,一般只能用文件读写作为中介。 (3)CGI没有安全框架,难以用于有较高安全性要求的事务处理。 (4)CGI没有对象模型,难以满足商业事务处理的要求。 其它服务器端程序动态加载技术都是对CGI方式的改进与扩充。,ISAPI一个过渡性改进,微软的技术。基本思路是由HTTP守护进程加载可独立执行的网关程序改为加载动态链接库,取消了启动与释放进程的开销。,ISAPI评价,(1)避免了CGI启动的资源开销; (2)可以用全局变量改善不同调用间的通信效率 (3)仍然没有安全框架与对象模型; (4)由于DLL与HTTP守护进程共享地址空间,从而导致一个ISAPI程序的缺

5、陷可能导致整个HTTP服务器的瘫痪。,Java Servlet技术,Servlet是使用Java Servlet API 及相关类和方法的Java 类. Servlet 在启用 Java 的 Web 服务器上或应用服务器上运行,并扩展了该服务器的能力。 Java servlet对于Web服务器就好象Java applet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。 Java Servlet API 定义了一个servlet 和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。,

6、Servlet的生命周期,始于将它装入 Web 服务器的内存时,并在终止或重新装入 Servlet 时结束。 1)初始化: 在下列时刻装入 Servlet: (1)如果已配置自动装入选项,则在启动服务器时自动装入; (2)在服务器启动后,客户机首次向 Servlet 发出请求时。 重新装入 Servlet 时: 装入 Servlet 后,服务器创建一个 Servlet 实例并且调用 Servlet 的 init() 方法。在初始化阶段,Servlet 初始化参数被传递给 Servlet 配置对象。,Servlet的生命周期(续),2) 请求处理 对于到达服务器的客户机请求,服务器创建特定于请求

7、的一个“请求”对象和一个“响应”对象。服务器调用Servlet 的 service() 方法,该方法用于传递“请求”和“响应”对象。service() 方法从“请求”对象获得请求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service() 方法可以调用其它方法来处理请求,例如 doGet()、doPost() 或其它的方法。 3) 终止 当服务器不再需要 Servlet, 或重新装入Servlet 的新实例时,服务器会调用 Servlet 的 destroy() 方法。,创建HTTP Servlet,Java Servlet 开发工具(JSDK)提供了多个软件包,其中包括两个用

8、于所有 Servlet 的基本软件包: javax.servlet 和 javax.servlet.http 通常涉及下列四个步骤: 1) 扩展 HttpServlet 抽象类。 2) 重载适当的方法。如重写doGet() 或doPost()方法。 3) 如果有 HTTP 请求信息的话,获取该信息。 用 HttpServletRequest 对象来检索 HTML 表格所提交的数据或 URL 上的查询字符串。“请求“对象含有特定的方法以检索客户机提供的信息:,创建HTTP Servlet(续),4) 生成 HTTP 响应。HttpServletResponse 对象生成响应,并将它返回到发出请求

9、的客户机上。它的方法允许设置“请求” 标题和“响应”主体。 “响应“对象还含有getWriter() 方法以返回一个 PrintWriter 对象。使用PrintWriter 的 print() 和 println() 方法以编写Servlet 响应来返回给客户机。或者,直接使用out对象输出有关HTML文档内容。,调用servlet,由 URL 调用、 在 标记中调用、 在 标记中调用、 在 JSP 文件中调用、 在 ASP 文件中调用。,Servlet举例,HTML页面中的表单: My name is ,Servlet举例(续),import java.io.*; import java.

10、util.*; import javax.servlet.*; import javax.servlet.http.*; public class test extends HttpServlet implements SingleThreadModel private ArrayList valueList; public void init(ServletConfig config) throws ServletException super.init(config); valueList = new ArrayList(); ,public void doPost(HttpServlet

11、Request req, HttpServletResponse res) throws ServletException, IOException int i; res.setContentType(“text/html“); PrintWriter toClient = res.getWriter(); try String value = req.getParameterValues(“name“)0; valueList.add(value); toClient.println(“); toClient.println(“Reuslts“); toClient.print(“Hello

12、“); for (i=0;i“); catch(Exception e) e.printStackTrace(); toClient.close(); ,Servlet评价,(1)面向对象编程,可采用多种对象模型(JavaBean、RMI、Corba、COM/DCOM等),开发效率高,可靠性好; (2)避免了CGI启动的资源开销; (3)提供了丰富的通信包; (4)利用Java完善的安全框架,商业开发安全性好。,JSP技术,JSP(JavaServer Pages)是一种基于Java的脚本技术: 在 JSP 的众多优点之中,其中之一是它能将 HTML编码从 Web 页面的业务逻辑中有效地分离出

13、来。 用 JSP 访问可重用的组件,如 Servlet、JavaBean和基于 Java 的 Web 应用程序。 JSP 还支持在 Web 页面中直接嵌入 Java 代码。,访问JSP文件,Web 浏览器,JSP文件,Http请求某JSP页面,Beans,数据库,初次使用时被,编译为Servlet,访问数据,JSP举例,浏览器通过一个Web页面中的HTML表单请求一个servlet(PopulateBeanServlet): servlet示例创建一个名为 dataBean 的DataBean 实例,并调用 JSP 文件将内容发送到浏览器。 Servlet 示例和 JSP文件示例说明了启用内容

14、分离的 JSP访问模型。,JSP举例(续1),import java.io.*; import java.beans.Beans; import javax.servlet.*; import javax.servlet.http.*; public class PopularBeanServlet extends HttpServlet public void Service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException try dataBean = (DataBea

15、n)Beans.instantiate(this.getClass().getClassLoader(), “DataBean“); catch (Exception e) e.printStackTrace(); dataBean.setProp1(“Value1“); dataBean.setProp2(“Value2“); dataBean.setProp3(“Value3“); (com.sun.server.http.HttpServiceRequest)req).setAttribute(“dataBean“, dataBean); (com.sun.server.http.Htt

16、pServiceResponse)res).callPage(“/DisplayData.jsp“,req); ,JSP举例(续2), Bean Data Display The value of Bean property 2 is The value of Bean property 3 is ,XML技术,XML是SGML(Standard Generalized MarkupLanguage)的一个优化子集。 SGML是ISO在1986年推出的一个用来创建标记语言的语言标准,它源自IBM早在1969年开发的GML,该语言的名称也正好包含了三位创始人姓字的第一个字母,他们分别是Charles F. Goldfarb, Edward Mosher,Raymond Lorie。 SGML的复杂性使其难以直接应用到Internet上,这也是它没有被广泛接受的主要原因。,XML技术(续),作为一个用SGML定义标记语言的典型例子,HTML是专为Web上发布超文本而设计的标记

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号