一、生命周期(Servlet的执行过程):
1.加载
web.xml中读取<servlet-class>
com.uwo9.controller.LifeServlet
2.实例化(创建Servlet对象)
Class.forName("com.uwo9.controller.LifeServlet").newInstance();
3.初始化
调用init();
4.执行服务
先调用service()方法
4.1重写父类service方法,直接执行子类的service方法
4.2没有重写父类的service方法,直接调用父类的service方法。
父类的service方法的作用分发请求。
根据不同的请求方式调用不同的方法。
如果GET请求,调用doGet();
如果POST请求,调用doPost();
5.销毁
二、将普通JAVA类变成Servlet实现步骤:停止服务器时,调用destory()方法。
1.创建Java类并且继承 HttpServlet
2. 1-重写service(HttpServletRequest req,HttpServletResponse resp)
2-重写doGet(),doPost()
3.在WebRoot--->WEB-INF---->web.xml中配置Servlet的信息。三、如何访问一个Servlet?
在浏览器地址栏中输入:
协议名://服务器的主机名IP:8080/项目访问名/资源的路径名/资源名称
http://192.168.1.248:8080/uwo9/life四、执行过程:
1.根据地址栏中资源名称去web.xml中找到同名的url-pattern
2.根据url-pattern去找到servlet-name
3.根据servlet-name找到同名的servlet-name
4.根据servlet-name找到servlet-class
5.利用反射创建Servlet对象
Class.forName("servlet-class").newInstance();
6.调用init();进行初始化
7.执行服务
7.1:先判断是否重写父类的service方法。
7.2:如果重写了父类的service方法,直接按子类的service方法进行执行。
如果没有重写父类的service方法,直接执行父类的service方法。
如果是GET请求调用doGet()
如果是POST请求调用doPost()
8.关闭服务器调用destory()方法。
深入了解请参考:http://www.runoob.com/servlet/servlet-life-cycle.html