没有合适的资源?快使用搜索试试~ 我知道了~
ServletJSP深入详解:基于Tomcat的Web开发 第一章(全)(格式已整理).docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 169 浏览量
2022-11-29
15:56:26
上传
评论
收藏 1.61MB DOCX 举报
温馨提示
试读
24页
ServletJSP深入详解:基于Tomcat的Web开发 第一章(全)(格式已整理).docxServletJSP深入详解:基于Tomcat的Web开发 第一章(全)(格式已整理).docx
资源推荐
资源详情
资源评论
Servlet/JSP 深入详解:基于 Tomcat的 Web 开发 第一章
Servlet/JSP 深入详解:基于 Tomcat 的 Web 开发 第一章
要掌握 Java Web 开发,首先就要学会编写 Servlet,而要运行 Servlet,则需要一个 Servlet
容器,本书选用的是 Tomcat。下面让我们来了解一下 Servlet 和 Tomcat。
1.1 Web 技术的发展
随着 Internet 的发展,基于 HTTP 协议和 HTML 标准的 Web 应用呈几何数量
级的增长,人们的生活在不知不觉中已经被网络悄悄地改变了。在网络普及之前,
我们购买图书要去书店,给亲人汇钱要去邮局或者银行„„而现在,一切都是这
么便捷,你可以在网上购买图书、汇款、缴纳电话费,你甚至可以为远在他乡的
女朋友订购一束玫瑰。各种各样的网上业务丰富了我们的生活,节省了我们的时
间,提高了我们的工作效率,改善了我们的生活品质。支撑这些网上业务的就是
各种各样的 Web 应用,而这些 Web 应用又是用各种 Web 技术开发的。
早期的 Web 应用主要是静态页面的浏览(如新闻的浏览),这些静态页面使
用 HTML 语言来编写,放在服务器上;用户使用浏览器通过 HTTP 协议请求服务器
上的 Web 页面,服务器上的 Web 服务器软件接收到用户发送的请求后,读取请求
URI 所标识的资源,加上消息报头发送给客户端的浏览器;浏览器解析响应中的
HTML 数据,向用户呈现多姿多彩的 HTML 页面。整个过程如图 1-1 所示。
图 1-1 浏览器请求静态页面
随着网络的发展,很多线下业务开始向网上发展,基于 Internet 的 Web 应
用也变得越来越复杂,用户所访问的资源已不仅仅局限于在服务器硬盘上存放的
静态网页,更多的应用需要根据用户的请求动态生成页面信息,复杂一些的还需
要从数据库中提取数据,经过一定的运算,生成一个页面返回给客户。例如,笔
者通过 Web 浏览器想要查询本公司一年的销售报表,这个销售报表是根据一年的
1 / 24
Servlet/JSP 深入详解:基于 Tomcat的 Web 开发 第一章
销售数据得出的,而这一年的销售数据非常多,通常都是存储在数据库中,当
Web服务器端软件接收到客户端的请求,就需要从数据库中提取一年的数据,然
后按照一定的统计规则,通过计算生成报表页面,发送到请求者的 Web浏览器端。
类似于上述的应用还有很多,要为用户提供各种各样的增强功能,就需要我们在
Web服务端通过软件来实现。可是这种实现,如何才能完成呢?
了解 HTTP协议的读者,可能会想到,可以遵循HTTP协议实现一个服务器端
软件,提供增强功能。想法本身没有错误,但是由于 HTTP协议服务器端的实现
较为复杂,需要考虑很多方面,而且由于应用的广泛性,不可能针对每一种应用
都去实现这样的一个 HTTP服务器,所以这种方法在现实中不太可行。还有一种
方法,就是利用已经实现 HTTP协议的服务器端软件,而这些软件预先为我们留
出了扩展的接口,我们只需要按照一定的规则去提供相应的扩展功能。当这类
Web服务器接收到客户请求后,判断请求是否是访问我们提供的扩展功能,如果
是,就将请求交由我们所编写的程序去处理。当处理完成后,程序将处理结果交
回 Web服务器软件,Web服务器软件拿到结果信息后,再将结果作为响应信息返
回给客户端。第二种方式的好处在于,我们不需要对 HTTP协议有过多的了解,
HTTP协议服务器端的实现已经由 Web服务器软件完成了,我们只需要根据我们
的应用去开发相应的功能模块,然后将这些功能模块按照你所采用的 Web服务器
软件的要求,部署到 Web服务器中进行集成。在用户看来,Web服务器端就是一
个整体,在为他/她提供服务。
早期使用的 Web服务器扩展机制是 CGI,它允许用户调用 Web服务器上的 CGI
程序。CGI的全称是 Common Gateway Interface,即公共网关接口。大多数的
CGI程序使用 Perl来编写,也有使用 C、Python或 PHP来编写的。用户通过单
击某个链接或者直接在浏览器的地址栏中输入 URL来访问 CGI程序,Web服务器
接收到请求后,发现这个请求是给 CGI程序的,于是就启动并运行这个 CGI程序,
对用户请求进行处理。CGI程序解析请求中的 CGI数据,处理数据,并产生一个
响应(通常是 HTML页面)。这个响应被返回给 Web服务器,Web服务器包装这
个响应(例如添加消息报头),以 HTTP响应的形式发送给 Web浏览器。整个过
程如图 1-2所示。
2 / 24
Servlet/JSP 深入详解:基于 Tomcat的 Web 开发 第一章
图 1-2 用户访问 CGI 程序
然而 CGI 程序存在着一些缺点,主要是 CGI 程序编写困难、对用户请求的响应时间较
长、以进程方式运行导致性能受限等。由于 CGI 程序的这些缺点,开发人员需要其他的 CGI
方案。1997 年,SUN 公司推出了 Servlet 技术,作为 Java 阵营的 CGI 解决方案。作为对
微软 ASP 技术(1996 年推出)的回应,SUN 公司于 1998 年推出了 JSP 技术,允许在 HTML
页面中嵌入 Java 脚本代码,从而实现动态网页功能。与 ASP、JSP 类似的服务器端页面编
写技术还有 Rasmus Lerdorf 于 1994 年发明的 PHP 技术。
Servlet 与 Servlet 容器
Java Servlet(Java服务器小程序)是一个基于 Java技术的 Web组件,运
行在服务器端,由 Servlet容器所管理,用于生成动态的内容。Servlet是平台
独立的 Java类,编写一个 Servlet,实际上就是按照 Servlet规范编写一个 Java
类。Servlet被编译为平台独立的字节码,可以被动态地加载到支持 Java技术
的 Web服务器中运行。目前 Servlet规范最新的版本是 2.5。
在上文中,出现了一个概念“Servlet 容器”。那么什么是 Servlet容器呢?
Servlet容器有时候也叫做 Servlet引擎,是 Web服务器或应用程序服务器的一
部分,用于在发送的请求和响应之上提供网络服务,解码基于 MIME的请求,格
式化基于 MIME的响应。Servlet不能独立运行,它必须被部署到 Servlet容器
中,由容器来实例化和调用 Servlet的方法,Servlet容器在 Servlet的生命周
期内包容和管理 Servlet。
在 JSP技术推出后,管理和运行 Servlet/JSP的容器也称为
Web容器。在本书中,Servlet容器、JSP容器,以及 Web容器是同义的。
用户通过单击某个链接或者直接在浏览器的地址栏中输入 URL来访问
Servlet,Web服务器接收到该请求后,并不是将请求直接交给 Servlet,而是交
给 Servlet容器。Servlet容器实例化 Servlet,调用 Servlet的一个特定方法
对请求进行处理,并产生一个响应。这个响应由 Servlet容器返回给 Web服务器,
Web服务器包装这个响应,以 HTTP响应的形式发送给 Web浏览器。整个过程如
图 1-3所示。
3 / 24
Servlet/JSP 深入详解:基于 Tomcat的 Web 开发 第一章
图 1-3 用户访问 Servlet
与 CGI程序相比,Servlet具有以下优点:
— Servlet是单实例多线程的运行方式,每个请求在一个独立的线程中运
行,而提供服务的 Servlet实例只有一个。
— Servlet具有可升级性,能响应更多的请求,因为 Servlet容器使用一
个线程而不是操作系统进程,而线程仅占用有限的系统资源。
— Servlet使用标准的 API,被更多的 Web服务器所支持。
— Servlet使用 Java语言编写,因此拥有 Java程序语言的所有优点,包
括容易开发和平台独立性。
— Servlet可以访问 Java平台丰富的类库,使得各种应用的开发更为容
易。
— Servlet 容器给 Servlet 提供额外的功能,如错误处理和安全。
Servlet 容器的分类
根据 Servlet容器工作模式的不同,可以将 Servlet容器分为以下三类:
Ø 独立的 Servlet 容器
当我们使用基于 Java技术的 Web服务器时,Servlet容器作为构成 Web服务
器的一部分而存在。然而大多数的 Web服务器并非基于 Java,因此,就有了下
面两种 Servlet容器的工作模式。
Ø 进程内的 Servlet 容器
4 / 24
Servlet/JSP 深入详解:基于 Tomcat的 Web 开发 第一章
Servlet容器由 Web服务器插件和 Java容器两部分的实现组成。Web服务器
插件在某个 Web服务器内部地址空间中打开一个 JVM(Java虚拟机),使得 Java
容器可以在此 JVM中加载并运行 Servlet。如有客户端调用 Servlet的请求到来,
插件取得对此请求的控制并将它传递(使用 JNI技术)给 Java容器,然后由 Java
容器将此请求交由 Servlet进行处理。进程内的 Servlet容器对于单进程、多线
程的服务器非常适合,提供了较高的运行速度,但伸缩性有所不足。
Ø 进程外的 Servlet 容器
Servlet 容器运行于 Web 服务器之外的地址空间,它也是由Web 服务器插件和 Java
容器两部分的实现组成的。Web 服务器插件和 Java 容器(在外部 JVM 中运行)使用 IPC
机制(通常是 TCP/IP)进行通信。当一个调用 Servlet 的请求到达时,插件取得对此请求
的控制并将其传递(使用 IPC 机制)给 Java 容器。进程外 Servlet 容器对客户请求的响应
速度不如进程内的 Servlet 容器,但进程外容器具有更好的伸缩性和稳定性。
Tomcat 简介
学习 Servlet技术,首先需要有一个 Servlet运行环境,也就是需要有一个
Servlet容器,本书采用的是 Tomcat。
Tomcat是一个免费的开放源代码的 Servlet容器,它是 Apache软件基金会
(Apache Software Foundation)的一个顶级项目,由 Apache、Sun和其他一些
公司及个人共同开发而成。由于有了 Sun的参与和支持,最新的 Servlet和 JSP
规范总是能在 Tomcat中得到体现,Tomcat 6支持最新的 Servlet 2.5和 JSP 2.1
规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜
爱,并得到了部分软件开发商的认可,成为目前比较流行的 Web服务器。
Tomcat和 IIS、Apache等 Web服务器一样,具有处理 HTML
页面的功能,另外它还是一个 Servlet和 JSP容器,独立的 Servlet容器是 Tomcat
的默认模式。不过,Tomcat处理静态 HTML的能力不如 Apache,我们可以将 Apache
和 Tomcat集成在一起使用,Apache作为 HTTP Web服务器,Tomcat作为 Web容
器。
下面给出 Tomcat服务器接受客户请求并做出响应的图例,如图 1-4所示。
5 / 24
剩余23页未读,继续阅读
资源评论
xxpr_ybgg
- 粉丝: 6489
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功