Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15512
  • 博文数量: 9
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 115
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-25 10:41
文章分类

全部博文(9)

文章存档

2014年(1)

2013年(8)

我的朋友

分类: Java

2013-12-30 15:42:38

servlet的基本知识

什么是servlet - 
servlet是在服务器上运行的小程序

servlet的命名
applet,表示小应用程序
scriptlet=script+applet,表示小脚本程序
servlet=server+applet,表示小服务程序

servlet的功能
使用交互式web站点,在浏览器中显示结果。背后的流程:一个web服务器接收会话中来自于您的请求(request),可能要切换到其他代码(可能位于其他服务器上)来处理该请求和访问数据,并生成在浏览器中显示的结果
servlet 就是用于该过程的网守(gatekeeper)。它驻留在web服务器上,处理请求和输出响应

servlet的工作模式
1. client端发送请求至server端
2. server端将请求信息发送至servlet
3. servlet生成响应内容并将其传给服务器 - 响应内容动态生成,取决于客户端的请求
4. 服务器将响应返回给客户端
这里要说虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序

servlet代替品 - CGI
CGI - Common Gateway Interface(公共网关接口):它是一段程序,运行在服务器上,提供同客户端HTML页面的接口,通俗的讲CGI就像是一座桥,把网页和web服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器,再把服务器执行的结果返还给HTML页;用CGI可以实现处理表格,数据库查询,发送电子邮件等许多操作,最常见的CGI程序就是计数器。CGI使网页变得不是静态的,而是交互式的

CGI处理步骤
1. 通过Internet把用户请求送到服务器
2. 服务器接收用户请求并交给CGI程序处理
3. CGI程序把处理结果传送给服务器
4. 服务器把结果送回到用户

servlet和CGI有一定的相似之处,它们都是一段程序,都运行在server端,都提供client端和server端的交互,连处理步骤也非常相似

不同点
1. 在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在servlet中,每个请求由一个轻量级的Java线程处理
2. 针对同一CGI,如果有N个并发请求,该CGI程序的代码在内存中重复装载了N次(对于客户端作出的每个请求,必须创建CGI程序的一个新实例);而对于servlet,处理请求的是N个线程,只需要一份servlet类代码(对于客户端的请求,只需要创建servlet的实例一次)
3. servlet与Java语言一样也是与平台无关的

阅读(455) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~