servlet教程

来源:互联网 发布:绘画录屏软件 编辑:程序博客网 时间:2024/06/05 01:00

1.什么事servlet

   Servlet 是在服务器上运行的小程序

2.servlet生命周期

   (1)第一次发送servlet请求时,servlet容器创建servler对象;

  (2)servlet对象创建成功后,会调用init()方法进行初始化;

  (3)对每个客户端请求,Servlet容器都在不同的线程体内形成对应的requestresponse对象,

       并通过Servletservice()方法间接调用doPos()doGet()方法;

   (4)当容器决定移除Servlet时调用其destroy()方法,并释放Servlet实例对象

    注:servlet生命周期三个方法:init(),service(),destroy

     init()      初始化servlet对象

     service()   调用doGet()或者doPost()对请求做响应的处理

     destroy()   关闭web容器时调用此方法释放内存


、   

3,Servlet框架的两个java

Servlet框架是由两个java包组成:javax.servletjavax.servlet.http;

(1)javax.servlet:包中定义了所有的servlet类都必须实现的接口和类(Http协议无关的一般性servlet)


 

(2)javax.servlet.http包:包中定义了采用Http协议通信的HttpServlet(增加了与Http协议有关的功能)


(:所有Servlet都必须实现javax.servlet.Servlet接口,但是通常我们都会从javax.servlet.GenericServletjavax.servlet.http.HttpServlet择一来实现。如果写的Servlet代码和HTTP协议无关,那么必须继承GenericServlet类;若有关,就必须继承HttpServlet类。)

 

<1>介绍此包(javax.servlet.http)中的HttpServlet类中提供的doGet()doPost()方法:

public voiddoGet(HttpservletRequest req,HttpServletResponse res):处理客户端做出的Get请求;

Publicvoid doPost(HttpservletRequest req,HttpServletResponse res):

处理客户端做出的Post请求;

(:当请求到来时,service()方法决定请求的类型(GETPOSTHEADOPTIONSDELETEPUTTRACE),并把请求分发给相应的处理方法(doGet()doPost()doHead()doOptions()doDelete()doPut()doTrace())每个do方法具有和第一个service()相同的形式。我们常用的就是doGet()doPost()方法,为了响应特定类型的HTTP请求,我们必须重载相应的do方法。如果Servlet收到一个HTTP请求而你没有重载相应的do方法,它就返回一个说明此方法对本资源不可用的标准HTTP错误。 

)

 

4,实例

创建一个servlet——HelloWordServlet.java

  1. import java.io.IOException;  
  2. import java.io.PrintWriter;  
  3. import javax.servlet.ServletException;  
  4. import javax.servlet.annotation.WebServlet;  
  5. import javax.servlet.http.HttpServlet;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8.   
  9. @WebServlet(urlPatterns = {"/HelloWordServlet"})  
  10. public class HelloWordServlet extends HttpServlet {  
  11.   
  12.     protected void processRequest(HttpServletRequest request, HttpServletResponse response)  
  13.             throws ServletException, IOException {  
  14.         //设定内容类型为Html网页Utf-8编码  
  15.         response.setContentType("text/html;charset=UTF-8");  
  16.           
  17.         //输出页面  
  18.         PrintWriter out = response.getWriter();  
  19.         try {  
  20.             out.println("<!DOCTYPE html>");  
  21.             out.println("<html>");  
  22.             out.println("<head>");  
  23.             out.println("<title>Servlet HelloWordServlet</title>");              
  24.             out.println("</head>");  
  25.             out.println("<body>");  
  26.             out.println("大家好,我是李朋杰!" );  
  27.             out.println("</body>");  
  28.             out.println("</html>");  
  29.         } finally {              
  30.             out.close();  
  31.         }  
  32.     }  
  33.   
  34.     @Override  
  35.     protected void doGet(HttpServletRequest request, HttpServletResponse response)  
  36.             throws ServletException, IOException {  
  37.         //调用processRequest()函数  
  38.         processRequest(request, response);  
  39.     }  


Web.xml中的配置:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  
  3.     <servlet>  
  4.         <!--servlet名字-->  
  5.         <servlet-name>HelloWordServlet</servlet-name>  
  6.         <!--所要调用的java类-->  
  7.         <servlet-class>HelloWordServlet</servlet-class>  
  8.     </servlet>  
  9.     <servlet-mapping>  
  10.         <!--servlet名字-->  
  11.         <servlet-name>HelloWordServlet</servlet-name>  
  12.         <!--url连接,在这里,我们设置的是“/HelloWordServlet”。这里的Servlet名字必须和上面的<servlet>标签中的<servlet-name>的值一致-->         
  13.         <!--当我们的页面中设定的连接和<url-pattern>中设定的值一致时,则会通过<servlet-name>找到对应Servlet类来运行。  
  14.         这里,当页面的连接(a标签或form设定的action)是“/HelloWordServlet”时,则会通过Servlet的名字“HelloWordServlet”  
  15.         来找到对应的Servlet类“HelloWordServlet”来运行-->        
  16.         <url-pattern>/HelloWordServlet</url-pattern>  
  17.     </servlet-mapping>  
  18.     <session-config>  
  19.         <session-timeout>  
  20.             30  
  21.         </session-timeout>  
  22.     </session-config>  
  23. </web-app>  

 

5,总结:

 (1)了解什么是Servlet;

 (2)了解Servlet框架中的两个java,及包中的接口和类的应用;

 (3)Servlet的生命周期

 (4)基本应用


  


          

1 0
原创粉丝点击