一 Servlet 基础

  1. 定义相关:

    a) 是运行在 Web 服务器上得 Java 小程序

    b) 只将处理结果返回给客户

    c) 是实现接口 Servlet 的 java 类,能被服务器调用。

    d) Servlet 类与普通的 java 类非常相似,唯一的区别是扩展了新类并实现了一些新方法。

  2. Servlet 接口原型:

    

  2. Servlet 接口说明:

    a) init ():初始化操作

    b) service():执行应用逻辑的入口点

    c) destroy():清理内存资源

  3. service 函数的具体流程:

    a) 使用一个方法service接收用户的请求,请求封装在ServletRequest类中传给这个方法。

    b) 方法从ServletRequest类中读出用户信息和请求内容,然后将响应的页面写到ServletResponse对象中。

    c) 使用Java的IO方法将它们传回到客户端

  4. 所有 servlet 的两个共同点:

    a) 扩展 GenericServlet 或 HttpServlet

    b) 所有的 servlet 至少要覆盖(override)一个方法,在其中可以实现自定义的功能。

  5. 服务器调用 Servlet 步骤:

    a) 服务器启动时,当 servlet 被配置好或被客户首次请求时,由服务器加载 servlet(本地或远程)。

    b) 服务器创建一个 servlet 类的实例来为所有请求服务。

    c) 服务器调用 servlet 的 init() 方法。

    d) 服务器针对请求构造对象

    e) 服务器调用 servlet 的 service() 方法,将上一步中构造的对象作为参数传递进去。

    f) 分析请求

    g) 如果服务器收到另一个对该 servlet 的请求,这个处理过程从步骤 e 重复。

    h) 一旦servlet容器检测到一个 servlet 要被卸载(可能是因为停止 servlet 容器或者 web 应用被卸载掉),服务器会在所有的 servlet 的 service() 线程完成之后调用servlet 的 destroy() 方法。

  6. 服务器调用 Servlet 步骤图示:

    

二 Servlet API:请自行参阅相关资料,在此不累述。

三 Servlet 和 JSP 的区别

  1. 编程方式不同:

  JSP 是为了解决 Servlet 中相对困难的编程技术而开发的技术,因此,JSP 在程序的编写方面比 Servlet 要容易的多,Servlet 严格遵循 Java 语言的编程标准,而 JSP 则遵循脚本语言的编制标准。

  2. Servlet必须在编译以后才能执行

  JSP 并不需要另外进行编译,JSP Container 会自动完成这一工作,而 Servlet 在每次修改代码之后都需要编译完才能执行。

  3. 运行速度不同

  由于 JSP Container 将 JSP 程序编译成 Servlet 的时候需要一些时间,所以 JSP 的运行速度比 Servlet 要慢一些,不过,如果 JSP 文件能毫无变化的重复使用,它在第一次以后的调用中运行速度就会和 Servlet 一样了,这是因为 JSP Container 接到请求以后会确认传递过来的JSP是否有改动,如果没有改动的话,将直接调用 JSP 编译过的 Servlet类,并提供给客户端解释执行,如果 JSP 文件有所改变,JSP Container 将重新将它编译成 Servlet,然后再提交给客户端。

  

五 Servlet 技术的更多相关文章

  1. JavaWeb:Servlet技术

    JavaWeb:Servlet技术 快速开始 Servlet是什么 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 ...

  2. Java Web之Servlet技术

    1.Servlet基础 针对Servlet技术开发,Sun公司提供了一些列接口和类,其中最重要的是javax.servlet.Servlet接口,两个重要的包是javax.servlet和javax. ...

  3. Java Servlet 技术简介

    Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...

  4. Web---演示servlet技术(servlet生命周期),解决中文乱码问题

    本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼♪(^∇^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ ...

  5. 漫谈servlet技术

    1.要谈到Servlet技术,不得不先谈谈动态网页的概念. 编写过网页的人都知道,浏览器能够根据HTML静态标记语言来显示各式各样的网页.但是如果我们需要在网页上完成一些业务逻辑:比如登陆验证.或者说 ...

  6. JSP+JavaBean+Servlet技术(MVC模型)

    一,Servlet开发用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种 ...

  7. java学习笔记—Servlet技术(11)

    如果大家要开发一个动态的网站,那么就必须要学习一种动态的网页开发技术.那么在SUN提供的JavaEE中主要包含两种开发动态网页的技术:Servlet和JSP技术. Servlet技术简介 Servle ...

  8. 2017.11.2 JavaWeb----第六章 Servlet技术

    JavaWeb ------第六章 Servlet技术 (1)在Web应用程序开发中,一般由JSP JavaBean技术和 Servlet技术的结合实现MVC开发模式.在MVC开发模式中将Web程序的 ...

  9. Javaweb 使用Servlet技术改写用户登录 使用Filter技术解决中文乱码

    先把实验3的jsp页面复制过来: WebContent->WEB-INF->lib下面的jar包8.0版本也要记得复制: Java Resources->src下的 cn.edu.h ...

随机推荐

  1. 如何在android项目中引用project作为类库引用

    前言: 在我们开发项目的时候,存在很多多个项目共有一个资源.逻辑代码的情况,这种情况一般我们采用在开发项目中导入别的项目作为引用的类库.资源等. 操作: 1.  新建一个android项目common ...

  2. POJ 1422 二分图(最小路径覆盖)

    Air Raid Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7278   Accepted: 4318 Descript ...

  3. C#解析Json(多方法解析Json 一)

    解析:{'id':'4028d80858053bed0158053ef7a50001','sl':0.0,'sfyfz':'0','zwjyzsbh':'1000001600000018'} 1.新建 ...

  4. php头像上传并裁剪支持3个尺寸

    源码下载

  5. html中offsetTop、clientTop、scrollTop、offsetTop

    HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对 ...

  6. TStringList 的Sorted属性

    1 .设置 sorted := true; 2.添加数据 add('3');add('4');add('1'); showmessage(commatext);// 1,3,4 3.再修改Sorted ...

  7. java基础之 string

    一 string public final class String 继承自java.lang.Object类. 实现了接口: java.io.Serializable, Comparable< ...

  8. xlistview的java(头)

    package com.bwie.xlistviews; import com.bwie.test.R; import android.content.Context;import android.u ...

  9. shell变量的使用

    转载请标明http://www.cnblogs.com/winifred-tang94/ shell环境中变量有三种类型: a.  环境变量:可以在shell脚本中直接利用“$环境变量名称”的形式引用 ...

  10. iOS定时器NSTimer的使用方法

    1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelect ...