一, servlet 简介
servlet 是由 sun 公司提供的一门用于开发动态 web 资源的技术. sun 公司在其 API 中提供了一个 servlet 接口, 用户若想发一个 Web 资源 (即就是开发一个 java 程序向浏览器输出数据), 需要完成以下的两个步骤:
1, 编写一个 java 类, 实现 servlet 接口.
2, 把开发好的 java 类部署到 Web 服务器中. 按照一种约定俗成的称呼习惯, 通常我们也把实现了 servlet 接口的 java 程序, 称之为 servlet.
二, 什么是 servlet
Servlet 是一种基于 java 技术的 Web 组件, 是一种基于 java 的且与第三方平台无关的类. 通常, 它可以被 Web 服务器编译, 加载和运行, 最后生成动态的资源内容.
三, 什么是 servlet 容器
Servlet 容器通常是 Web 服务器的一部分, 或者说是它的一个组件, servlet 容器通常提供了一些接收客户端请求, 给出响应等网络请求服务, 通常, servlet 容器通过 servlet 的生命周期管理所有的 servlet,tomcat 就是一个典型的 servlet 容器.
四, 为什么要使用 servlet
1,servlet 是采用接 java 编写的, 而由 java 跨平台性的特点可知, servlet 移植性很好, 且 servletAPI 具有完善的标准, 几乎所有的主流服务器都支持 servlet.
2,servlet 与传统的 CGI(common gateway interface) 相比, 功能要强大, 且处理的请求采用的是线程, 而非进程, 从而节省大量的资源开销, 因此 servlet 处理请求更轻量级, 更高效.
五, servlet 常用的接口
5.1 servlet 接口
1,(1) 定义了 servlet 必须实现的方法;
(2) 所有的 servlet 都必须实现这个接口;
(3)GenericServlet 类实现了这个接口;
(4)HttpServlet 继承了 GenericServlet 类;
2,servlet 接口定义
- Public abstract interface Servlet
- {
- Public void destroy();
- Public ServletConfig getServletConfig();
- Public String getServletInfo();
- Public void init(ServletConfig config);
- Public void service(ServletResquset request,ServletResponse reponse)
- }
5.2 ServletRequest 接口
1,(1)ServletRequest 用来向 Servlet 提供客户有关请求的信息;
(2)HttpServletRequest 类继承了 ServletRequest 接口, 能够提供进一步的与协议相关的数据;
(3)ServletRequest 对象是 service 方法的参数之一;
5.3 ServletResponse 接口
1,(1)ServletResponse 用来向客户端传送经过 MIME 编码的数据;
发送文本数据时, 使用 getWrite 方法返回 PrintWrite 对象'
发送二进制数据时, 使用 getOutputStream 方法返回 ServletOutpuStream 对象;
另外, 在调用 getWrite 或 getOutputStream 方法前调用 setContentType 方法;
(2)HttpServletResponse 类继承 ServletResponse 接口, 能够提供进一步的与协议相关的数据
(3)ServletResponse 对象是 service 方法的参数之一;
5.4 SingleThreadModel 接口
1,(1)SingleThreadModel 接口确保 Servlet 在同一时刻只处理一个请求;
(2) 此接口中没有定义方法
5.5 ServletConfig 接口
1,(1)ServletConfig 接口用于存取 servlet 实例的初始化参数;
(2) 参数形式: 名称 / 数值对
(3) 通过 ServletConfig 可以得到 Web.xml 中的设置的 servlet 的一些部署信息;
(4) 每一个 ServletConfig 对象对应着的一个唯一的 servlet;
2,ServletConfig 接口定义
- Public abstract interface ServletConfig{
- Public String getInitParameter(String name);
- Public Enumeration getInitParameterName();
- Public ServletContext get ServletContext();
- }
5.6 ServletContext 接口
(1)ServletContext 接口向 Servlet 提供了访问其环境所需的方法, 并记录了一些重要环境信息;
(2) 通过调用 ServletConfig.getServletContext 来获得 ServletContext 对象;
六, 如何开发一个 servlet
1, 编写 java 类, 继承 HttpServlet 类
2, 重新构建 doGet 方法和 doPost 方法
3, 在 Web.xml 文件中进行配置
4,servlet 程序交给 tomcat 服务器运行
---------------------
来源: http://www.bubuko.com/infodetail-2991418.html