Servlet相关
servlet相关
servlet介绍
servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的web页面。它担当客户端请求与服务器响应的中间层。Servlet是位于web服务器内部的服务器端的Java应用程序,与传统的从命令启动的Java应用程序不同,servlet由web服务器进行加载,该web服务器必须包含支持servlet的Java虚拟机。
servlet的生命周期
加载和实例化、初始化、服务、销毁。
- 当客户第一次请求,先判断是否存在servlet对象,若不存在,则由web容器创建对象。
- 之后调用init()方法对其初始化,此初始化方法在整个生命周期中只调用一次
- web容器调用servlet容器对象的service()方法处理请求
- 当web容器关闭或者servlet对象要从容器中删除时,自动调用destory()方法。
Servlet 生命周期的方法: 以下方法都是由 Serlvet 容器负责调用.
- 构造器: 只被调用一次. 只有第一次请求 Servlet 时, 创建 Servlet 的实例. 调用构造器. 这说明 Serlvet 的单实例的!
- init 方法: 只被调用一次. 在创建好实例后立即被调用. 用于初始化当前 Servlet.
- service: 被多次调用. 每次请求都会调用 service 方法. 实际用于响应请求的.
- destroy: 只被调用一次. 在当前 Servlet 所在的 WEB 应用被卸载前调用. 用于释放当前 Servlet 所占用的资源.
编写servlet
实现servlet接口
web.xml文件编写
<!-- 配置和映射 Servlet -->
<servlet>
<!-- Servlet 注册的名字 -->
<servlet-name>helloServlet</servlet-name>
<!-- Servlet 的全类名 -->
<servlet-class>com.atguigu.javaweb.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- 需要和某一个 servlet 节点的 serlvet-name 子节点的文本节点一致 -->
<servlet-name>helloServlet</servlet-name>
<!-- 映射具体的访问路径: / 代表当前 WEB 应用的根目录. 浏览器通过改url找到servlet-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>