JavaWeb 学习笔记(二)Servlet生命周期
来源:互联网 发布:剑网三花钱知乎 编辑:程序博客网 时间:2024/04/20 04:58
Servlet概述
五个方法,三个生命周期方法,其中有两个只执行一次
生命周期方法:
void init (ServletConfig config)
:出生之后(1次)void service(ServletRequest req,ServletResponse res)
:每次处理请求时都会被调用void destroy()
:临死之前(1次)
特性:
- 单例,一个类只有一个对象;当然可能存在多个Servlet类!
- 线程不安全,效率高
Servlet类由我们来写,但对象由服务器来创建,并且由服务器调用相应的方法。
(1)什么是servlet
Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:
- 接收请求数据;
- 处理请求;
- 完成响应;
例如客户端发出登陆请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们来自己编写,每个Servle必须实现javax.servlet.Servlet接口
每个Servlet都不同,相当于不同的报员完成自己的任务,在Servlet之前需要进行调度分配。
(2)实现Servlet的方式(由自己来写)
实现Servlet有三种方式:
- 实现javax.servlet.Servlet接口;
- 继承javax.servlet.GenericServlet类;
- 继承javax.servlet.http.HttpServlet类;这个类更方便,它继承自GenericServlet,是专门为Http编写的
通常会继承HttpServlet类来完成我们的Servlet,但学习还是从javax.servlet.Servlet接口开始。查看API帮助文档Servlet的五个方法
public interface Servlet{ public void init (ServletConfig config) throws ServletException; public ServletConfig getServletConfig(); public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException; public String getServletInfo(); public void destroy();}
Servlet中的方法大多数不由我们来调用,而是由Tomcat来调用;并且Servlet的对象也是由Tomcat来创建。
方法解释:
init (ServletConfig config)
它是生命周期方法,它会在Servlet对象创建之后马上执行,并只执行一次!(出生之后)Servlet是单例对象destroy()
它是生命周期方法,它会在Servlet被销毁之前调用,并且也只调用一次。这个方法并不是直接摧毁了对象service(ServletRequest req,ServletResponse res)
它是生命周期方法,会被调用多次,每次处理请求都是在调用这个方法getServletConfig()
获取Servlet的配置信息getServletInfo()
获取Servlet的信息,用处不是太多,服务器基本不会调用这个方法
Servlet的生命周期
如何让浏览器访问Servlet:
这个是web.xml文件的设置:
- servlet-class:是自己实现Servlet接口的.java文件的类名
- 上下两个xxx的servlet-name要相同
对上面的文件做一下简单的介绍:
- 给Servlet指定一个Servlet路径!也就是将一个路径配给Servlet(让Servlet与一个路径绑定在一起)这需要在web.xml中对Servlet进行配置
web.xml文件<servlet> <servlet-name>XXX</servlet-name> <servlet-class>servlet.AServlet</servlet-class></servlet><servlet-mapping> <servlet-name>XXX</servlet-name> <url-pattern>/xxx.servlet</url-pattern>此处必须以斜线开头,/后代表Servlet的路径</servlet-mapping>
上面这个文件可以理解浏览器访问的是url-pattern所指定的路径,通过servlet-mapping中提供的名称访问到了响应的servlet - 浏览器访问Servlet路径
自己动手写第一个Servlet:
有关Intellij工程如下:
web.xml内容如下:
<servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping>
在HelloWorld.java中类实现了javax.servlet.Servlet接口,每个方法的实现都是System.out.println("方法名()...");
,主要是为了看一下生命周期的过程:
访问localhost:8080/JavaWeb/HelloWorld
当访问了两次Servlet时,可以看到init()
执行了一次,service()
执行了两次,点击关闭服务destroy()
执行了一次
本人是菜鸟一枚,当做学习笔记写博客。谢谢各路大咖驻足审阅
- JavaWeb 学习笔记(二)Servlet生命周期
- JavaWeb学习笔记(二)---Servlet协议
- JavaWeb学习笔记——Servlet生命周期
- JavaWeb学习笔记-servlet-02-生命周期
- JavaWeb学习之Servlet(二)----Servlet的生命周期、继承结构、修改Servlet模板
- Servlet生命周期(跟龙哥学javaweb)笔记
- JavaWeb学习(二):Servlet
- Servlet学习(二)servlet生命周期
- Servlet学习笔记(一)---Servlet生命周期
- JavaWeb学习笔记:Servlet
- Javaweb学习笔记---Servlet
- JavaWeb学习之路----Servlet(二)
- javaWeb学习(1)——servlet生命周期
- Servlet生命周期学习笔记
- Servlet生命周期--学习笔记
- JavaWeb学习二(Servlet入门)
- Servlet生命周期自学笔记二
- Servlet的生命周期(学习笔记)
- JNI开发入门教程,实现输出一段字符串
- 闯红灯理论
- 常见面试题——斐波纳挈数列
- leetCode:Remove Nth Node From End of List
- 机器学习与TensorFlow编程(3)Softmax回归
- JavaWeb 学习笔记(二)Servlet生命周期
- ALV中输出标题头
- test
- 人物简单移动!!!
- BZOJ3129: [Sdoi2013]方程
- 小兴看看Q强势发布,真正的全实时流畅体验
- Java30
- Android 生成二维码。
- java并发编程(四)--java中的锁(可重入锁ReentrantLock)