核心提示:一、Servlet 是和平台无关的服务器组件,运行在Servlet容器中,可完成如下功能: 1、创建并返回基于客户请求的动态HTML页面 2、创建可嵌入到现有HTML页面的HTML页面片段 3、与其他...
一、Servlet 是和平台无关的服务器组件,运行在Servlet容器中,可完成如下功能: 1、创建并返回基于客户请求的动态HTML页面 2、创建可嵌入到现有HTML页面的HTML页面片段 3、与其他服务器资源进行通信(如数据库或基于java的应用程序)
二、Servlet容器 运行 Servlet、JSP、Filter 等的软件环境.
1、 可以来创建 Servlet, 并调用 Servlet 的相关生命周期方法.
2、 JSP, Filter, Listener, Tag ...
三、Servlet 生命周期的方法: 以下方法都是由 Serlvet 容器负责调用.
1、构造器: 只被调用一次. 只有第一次请求 Servlet 时, 创建 Servlet 的实例. 调用构造器.
2、init 方法: 只被调用一次. 在创建好实例后立即被调用. 用于初始化当前 Servlet.
3、service: 被多次调用. 每次请求都会调用 service 方法. 实际用于响应请求的.
4、destroy: 只被调用一次. 在当前 Servlet 所在的 WEB 应用被卸载前调用. 用于释放当前 Servlet 所占用的资源.
好了 现在皮皮开始写第一个Servlet程序啦 老规矩 HelloWorld 新建Servlet后 可在web.xml文件中看到Servlet的配置信息: 元素的子元素的设置值可以是同一个Servlet的注册名。
2、在Servlet映射到的URL中也可以使用 * 通配符,但是只能有两种固定的格式:
一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。
好 现在我们开始编辑NewServlet.java文件 来看一下sevlet 的生命周期 看看几个方法的调用情况。 编辑一下几个方法
运行后是这样的
多次刷新 会打印多次 service 关闭服务器后 会打印destroy 可见: 1、构造器: 只被调用一次. 只有第一次请求 Servlet 时, 创建 Servlet 的实例. 调用构造器.
2、init 方法: 只被调用一次. 在创建好实例后立即被调用. 用于初始化当前 Servlet.
3、service: 被多次调用. 每次请求都会调用 service 方法. 实际用于响应请求的.
4、destroy: 只被调用一次. 在当前 Servlet 所在的 WEB 应用被卸载前调用. 用于释放当前 Servlet 所占用的资源.
1、 可以来创建 Servlet, 并调用 Servlet 的相关生命周期方法.
2、 JSP, Filter, Listener, Tag ...
三、Servlet 生命周期的方法: 以下方法都是由 Serlvet 容器负责调用.
1、构造器: 只被调用一次. 只有第一次请求 Servlet 时, 创建 Servlet 的实例. 调用构造器.
2、init 方法: 只被调用一次. 在创建好实例后立即被调用. 用于初始化当前 Servlet.
3、service: 被多次调用. 每次请求都会调用 service 方法. 实际用于响应请求的.
4、destroy: 只被调用一次. 在当前 Servlet 所在的 WEB 应用被卸载前调用. 用于释放当前 Servlet 所占用的资源.
好了 现在皮皮开始写第一个Servlet程序啦 老规矩 HelloWorld 新建Servlet后 可在web.xml文件中看到Servlet的配置信息:
关于serlvet-mapping 1、同一个Servlet可以被映射到多个URL上,即多个NewServlet servlet的注册名字com.pipi.first.NewServlet Servlet 的全类名NewServlet 需要和servlet 节点的 serlvet-name 子节点的文本节点一致/HelloWorld 映射具体的访问路径30
2、在Servlet映射到的URL中也可以使用 * 通配符,但是只能有两种固定的格式:
一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。
好 现在我们开始编辑NewServlet.java文件 来看一下sevlet 的生命周期 看看几个方法的调用情况。 编辑一下几个方法
@Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.service(req, resp); //To change body of generated methods, choose Tools | Templates. System.out.println("service!"); } @Override public void init() throws ServletException { super.init(); //To change body of generated methods, choose Tools | Templates. System.out.println("init!"); } public NewServlet(){ System.out.println("hello world!"); } @Override public void destroy() { super.destroy(); //To change body of generated methods, choose Tools | Templates. System.out.println("destory!"); }
运行后是这样的
2、init 方法: 只被调用一次. 在创建好实例后立即被调用. 用于初始化当前 Servlet.
3、service: 被多次调用. 每次请求都会调用 service 方法. 实际用于响应请求的.
4、destroy: 只被调用一次. 在当前 Servlet 所在的 WEB 应用被卸载前调用. 用于释放当前 Servlet 所占用的资源.