Servlet技术简介

servlet是单例多线程!

servlet是单例多线程!!

servlet是单例多线程!!!

1 Servlet简介

    servlet是一种服务器端的应用程序,具有独立于平台和协议的特性,可以生成动态的web页面。它担当客户请求(web浏览器或其他HTTP客户程序)和服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

    JSP是servlet的一种形式,每个JSP页面实际上就是一个servlet实例——JSP页面由servlet引擎转换成servlet,servlet负责响应客户请求。也就是说使用JSP实际上还是使用servlet,因为web应用中每个JSP页面都会由servlet容器生成servlet。

    

图1 servlet应用程序的体系结构

2 创建第一个servlet

import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/hello")
public class Servlet extends javax.servlet.http.HttpServlet {

    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        System.out.println("hello:post");
        PrintWriter out = response.getWriter();
        out.print("<h1 style='color:red'>post</h1>");
    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        System.out.println("hello:get");
        PrintWriter out = response.getWriter();
        out.print("<h1 style='color:red'>get</h1>");
    }
}

    

3 servlet的生命周期

    servlet的生命周期由servlet容器控制,该容器创建servlet的实例。servlet的生命周期就是指servlet实例在创建之后响应客户端请求直至销毁的全过程。servlet实例的首次创建取决于servlet的首次调用。servlet接口定义了servlet生命周期的三个方法,这些方法就是init(),service(),destroy().

    (1)init()方法用来把servlet导入和初始化。这个方法在servlet被预加载或在第一次请求时执行。

    (2)servlet处理0个或多个请求。servlet对每个方法都用service()方法来处理。

    (3)当web应用声明servlet被关闭、servlet被销毁、垃圾收集器对资源进行收集时,用destroy()方法来关闭servlet。    

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/hello")
public class ServletDemo extends javax.servlet.http.HttpServlet {

    public ServletDemo(){
        super();
    }

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        System.out.println("hello:post");
        PrintWriter out = response.getWriter();
        out.print("<h1 style='color:red'>post</h1>");
    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        System.out.println("hello:get");
        PrintWriter out = response.getWriter();
        out.print("<h1 style='color:red'>get</h1>");
    }

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

}

猜你喜欢

转载自blog.csdn.net/long_yi_1994/article/details/79981834