Servlet 概述
- JSP 显示数据
- Servlet 接收请求,调用 JavaBean 去处理请求
- JavaBean 负责封装数据(实体类 entity)和处理业务逻辑(Service)
Servlet 做什么
- 本身不做任何业务处理(业务处理由 Servlet 业务逻辑层实现)
- 只是接收请求 并 决定调用哪个JavaBean(调用业务逻辑层的哪个方法)去处理请求
- 确定用哪个页面来显示处理返回的数据(转发或重定向到 JSP 页面)
Servlet 是什么?
- Server(服务器) + Applet(应用程序),是一种服务器的JAVA应用程序
- 只有一个服务器端的程序使用了 Server API 的时候
- 即 一个JAVA类继承了一个 Servlet API 时(包括:Servlet 接口、GenericServlet 类或者 HttpServlet 类)
- 这个服务器的程序才能称之为 Serverlet
Servlet 中主要方法
- init():Servlet的初始化方法,仅仅会执行一次
- sevice():处理请求和生成响应
- destroy():在服务器停止并且程序中的 Servlet 对象不再使用的时候调用,只执行一次
- ServletRequest (常用 HttpServletRequest)
- 封装客户的请求学习
- 作用相当于 JSP 内置对象 request
- ServletResponse
- 创建响应学习,将处理结果返回给客户端
- 作用相当于 JSP 内置对象 response
- ServletConfig:包含了 servlet 的初始化参数信息
Servlet 生命周期各个阶段(4个)
- 阶段1:加载和实例化
- 阶段2:初始化
- 阶段3:处理请求
- 阶段4:销毁
Servlet 生命周期流程步骤(8个步骤)
- 浏览器发送请求到容器
- 容器解析请求(到 web.xml 去找)
- 容器实例化 Servlet
- 容器调用 Servlet 的 init 初始化方法
- 容器调用 Servlet 的 sevice 请求方法
- Servlet 输出响应信息(携带数据转发或重定向)
- 容器响应信息到浏览器
- 当请求结束并且服务器停止运行时,调用 destory 销毁 Servlet 实例
Servlet 部署与运行
- 修改 web.xml (部署描述文件)
- 添加 <servlet>:把 Servlet 内部名映射到一个 Servlet 类名
- 添加 <servlet-mapping>:把用户名访问的 URL 映射到 Servlet 的内部名
- 通过浏览器输入 URL 访问 Servlet
注意: <servlet-mapping> 与 <servlet> 中的 <servlet-name> 必须一致
例如:
<servlet>
<servlet-name>newsServlet</servlet-name>
<servlet-class>servlet.NewsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>newsServlet</servlet-name>
<url-pattern>/add.do</url-pattern>
</servlet-mapping>
总结及心得(了解即可,不用背)
Servlet 的作用
- 负责接收请求,调用相应的 Service 方法,决定如何响应,本身不做业务逻辑
创建和部署 Servlet
- 创建:继承自 HttpServlet
- 部署:修改 web.xml,添加 <Servlet>、<Servlet-mapping>
Servlet 好处
- 专人专职:JSP 负责显示,Servlet 负责控制
学习方法
- 基于了解 Servlet 生命周期的基础
- 参照本课程新闻添加功能的实现,查询帮助文档独立实现新闻修改、删除等功能