一 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,然后再提交给客户端。