Servlet 基础

1. Servlet 是一个运行在服务端以处理客户端请求并作出响应的Java程序。

2.Servlet 类必须继承HttpServlet类.

3.创建Servlet 需要引入的包: java.io.* , javax.servlet.* , javax.servlet.HttpServlet.*;

4. 实现doGet() 后者 doPost() 方法,至少重写一个。

5.Servlet 生命周期:(四个步骤)

 ·  加载和实例化-->由Servlet容器负责,当客户端请求时,Servlet容器会查找内存中是否存在Servlet实例,如果不存在则创建,如果存在,则取出。

  · 初始化-->初始化Servlet时,可以设置数据库连接参数,建立JDBC,或者对其他资源的引用,init() 方法别调用,这个方法定义在java.servlet.Servlet 接口中。

  · 服务-->Servle 初始化后,就处于响应请求的就需状态,每个对Servlet的请求都有一个Servlet Request对象代表,Servlet对客户端的响应都由一个Servlet Response 对象代表。 Servle 容器将这个对象转发个Servle ,这两个对象以参数的形式传递个service()  方法。 而service() 方法针对对象不同的请求方法,相应的调用doGet() 或 doPost() 来处理请求。

    · 销毁-->Servlet 实例由Servlet 容器创建,因此,Servlet的实例销毁也有Servlet容器来完成 。

6.Servlet的部署和配置

   web.xml 文件 我成称之为部署描述文件(DD)。

  该文件在程序运行Servlet 是起着一个“总调度” 的角色。

  在  web.xml 中使用两个XML 元素 <servlet> 和 <servlet-mapping> 把用户访问的URL映射到Servlet,其中<servlet-mapping> 将用户访问的URL映射到Servlet内部名, <servlet> 元素把Servlet 内部名映射到一个Servlet 类名(包名+类名)。

 以下是个Servlet 例子 :

Code:
  1. package hjl.servlet;   
  2.   
  3. import java.io.IOException;   
  4. import java.io.PrintWriter;   
  5.   
  6. import javax.servlet.ServletException;   
  7. import javax.servlet.http.HttpServlet;   
  8. import javax.servlet.http.HttpServletRequest;   
  9. import javax.servlet.http.HttpServletResponse;   
  10.   
  11. public class HelloServlet extends HttpServlet {   
  12.   
  13.     /**  
  14.      * Constructor of the object.  
  15.      */  
  16.     public HelloServlet() {   
  17.         super();   
  18.     }   
  19.   
  20.     /**  
  21.      * Destruction of the servlet. <br>  
  22.      */  
  23.     public void destroy() {   
  24.         super.destroy(); // Just puts "destroy" string in log   
  25.         // Put your code here   
  26.         System.out.println("释放系统资源是,destroy()被调用!");   
  27.     }   
  28.   
  29.     /**  
  30.      * The doGet method of the servlet. <br>  
  31.      *  
  32.      * This method is called when a form has its tag value method equals to get.  
  33.      *   
  34.      * @param request the request send by the client to the server  
  35.      * @param response the response send by the server to the client  
  36.      * @throws ServletException if an error occurred  
  37.      * @throws IOException if an error occurred  
  38.      */  
  39.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  40.             throws ServletException, IOException {   
  41.   
  42.         response.setContentType("text/html");   
  43.         PrintWriter out = response.getWriter();   
  44.         out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");   
  45.         out.println("<HTML>");   
  46.         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");   
  47.         out.println("  <BODY>");   
  48.         out.print("    This is ");   
  49.         out.print(this.getClass());   
  50.         out.println(", using the GET method");   
  51.         out.println("  </BODY>");   
  52.         out.println("</HTML>");   
  53.         out.flush();   
  54.         out.close();   
  55.     }   
  56.   
  57.     /**  
  58.      * The doPost method of the servlet. <br>  
  59.      *  
  60.      * This method is called when a form has its tag value method equals to post.  
  61.      *   
  62.      * @param request the request send by the client to the server  
  63.      * @param response the response send by the server to the client  
  64.      * @throws ServletException if an error occurred  
  65.      * @throws IOException if an error occurred  
  66.      */  
  67.     public void doPost(HttpServletRequest request, HttpServletResponse response)   
  68.             throws ServletException, IOException {   
  69.                        
  70.         response.setContentType("text/html");   
  71.         PrintWriter out = response.getWriter();   
  72.         out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");   
  73.         out.println("<HTML>");   
  74.         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");   
  75.         out.println("  <BODY>");   
  76.         out.print("    This is ");   
  77.         out.print(this.getClass());   
  78.         out.println(", using the POST method");   
  79.         out.println("  </BODY>");   
  80.         out.println("</HTML>");   
  81.         out.flush();   
  82.         out.close();   
  83.     }   
  84.   
  85.     /**  
  86.      * Initialization of the servlet. <br>  
  87.      * @throws ServletException if an error occurs  
  88.      */  
  89.     public void init() throws ServletException {   
  90.         // Put your code here   
  91.         System.out.println("初始化时,init()被调用!");   
  92.     }   
  93.   
  94. }   

 

配置 web.xml
 
Code:
  1. <servlet>   
  2.     <servlet-name>HelloServlet</servlet-name>   
  3.     <servlet-class>hjl.servlet.HelloServlet</servlet-class>   
  4.   </servlet>   
  5.   
  6.   <servlet-mapping>   
  7.     <servlet-name>HelloServlet</servlet-name>   
  8.     <url-pattern>/servlet/HelloServlet</url-pattern>   
  9.   </servlet-mapping>  
 
  加我为好友  希望和大家共同学习。

你可能感兴趣的:(Servlet 基础)