IBM SW284 Servlet 概览讲义
来源:
/田浩然上传的资料/0C101软件构件与中间件技术/ibm/SW284_Slides/sw2256g03.pdf(12 页,IBM SW284 软件构件与中间件技术课程 Unit 3 讲义,约 2001-2003 年)
Servlet 是什么
- J2EE 应用的标准服务端组件,代表 HTTP 请求在服务端执行业务逻辑
- 运行在服务层(非客户端),是 CGI 脚本的纯 Java 替代
- 由 Web 容器(Web container)托管,天然多线程
HTTP 请求/响应结构
请求阶段:请求行(如 POST /Music/SearchServlet HTTP/1.0)→ 头部(Referer、User-Agent、Cookie、Content-type: application/x-www-form-urlencoded、Content-length 等)→ 空行 → POST 数据(song_title=Hello&song_artist=Jones)。
响应阶段:状态行(HTTP/1.1 200 ok)→ 头部(Content-Type、Set-Cookie、Cache-Control、Expires)→ 空行 → HTML 文档。
Servlet 处理流程
- 客户端请求 URL 指向某 servlet
- Web 服务器把请求转发给 servlet 引擎,引擎定位 Servlet 类实例
- 引擎调用 servlet 的 service 方法
- Servlet 动态构建响应(可访问外部资源)交回 Web 服务器
- Web 服务器把响应发回客户端
编写要点
- 类必须
extends javax.servlet.http.HttpServlet - 覆写
doGet/doPost分别处理 GET / POST - 处理
HttpServletRequest输入 → 调用业务流程 → 设置HttpServletResponse→ 通过response.getWriter()的 PrintWriter 输出 HTML - 典型代码:
request.getHeader("User-Agent")读请求头,response.setContentType("text/html")设定响应类型
评价
IBM 官方 J2EE 培训的标准入门单元,内容为基础科普级;与讲义配套的整个 SW284_Slides 目录是构件/中间件课程全套课件(该课其余部分含 EJB 等单元,见队列 0C101 目录其余文件)。
关联
- 与 JSP/EJB 类年代相近的笔记互补:Servlet 是 MVC 模式中 C 的早期载体(参见 对设计模式的十大误解-John-Vlissides 对 MVC 语境的讨论)