天天看点

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。

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>");
    }
}      
Servlet技术简介

3 servlet的生命周期

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

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");
    }

}