Servlet初探和生命周期

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gyx_2110/article/details/74113670
1、什么是Servlet
Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理
2、实现Servlet的方式
●实现javax.servlet.Servlet接口;
●继承javax.servlet.GenericServlet类;
●继承javax.servlet.http.HttpServlet类;
在实际开发过程中通常我们会去继承HttpServlet类来完成我们的Servlet,
但学习Servlet还要从javax.servlet.Servlet接口开始学习。这样有助于了解它的底层实现。
3、Servlet的方法和生命周期
定义一个类,实现Servlet接口,并简单重写它的抽象方法。

import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class AServlet implements Servlet {

	public void destroy() {
		System.out.println("destroy()...");
	}

	public ServletConfig getServletConfig() {
		System.out.println("ServletConfig()...");
		return null;
	}

	public String getServletInfo() {
		System.out.println("getServletInfo()...");
		return null;
	}

	public void init(ServletConfig config) throws ServletException {
		
		System.out.println("init()...");
	}

	public void service(ServletRequest servletRequest, ServletResponse servletResponse)
			throws ServletException, IOException {
		System.out.println("service()...");
	}
}

方法摘要:
  ●void destroy() 当Serlvet被销毁时调用 
  ●ServletConfig getServletConfig() 返回Servlet的配置信息
  ●java.lang.String getServletInfo() 返回Servlet的一些信息(不常用)
  ●void init(ServletConfig config)  当Servlet被创建时调用
  ●void service(ServletRequest req, ServletResponse res)每次处理请求时都会被调用
其中destroy、init、service是生命周期方法,init和destroy方法只执行一次,而service
方法每次处理请求时都会被执行。

4、Servlet的特性

单例模式,一个类只有一个对象。

非线程安全,所以非常高效。

Servlet类由我们来写,但对象由服务器来创建,并且由服务器来调用相应的方法。

 
5、在web.xml中配置并测试使用我们的编写的Servlet
在WEB-INF目录下的web.xml添加如下内容

<servlet>
  	<servlet-name>name</servlet-name>	<!-- Serlvet的名字 -->
  	<servlet-class>com.gyx.servlet.AServlet</servlet-class> <!-- Servlet所在的全类名 -->
  </servlet>
  <servlet-mapping>
   	<servlet-name>name</servlet-name>	<!-- 要配置的Servlet名字  -->
    <url-pattern>/testServlet</url-pattern>	<!-- 为Servlet指定一个路径,用于在浏览器中访问 -->
  </servlet-mapping>


启动Tomcat并将项目发布:

在浏览器中输入:http://localhost:8080/LearnServlet/testServlet   

testServlet就是在web.xml中配置的路径名.

可以看到在Myeclipse的控制台会输出以下内容 init方法和service先后被执行:



当我们多次刷新页面时,service会被多次执行。



现在我们关闭Tomcat服务器 destroy方法会在关闭前执行:


这就验证我们之前讨论的Servlet各个生命同期方法的执行时机。

猜你喜欢

转载自blog.csdn.net/gyx_2110/article/details/74113670
今日推荐