Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es el principio operativo y el ciclo de vida de Servlet?

¿Cuál es el principio operativo y el ciclo de vida de Servlet?

El ciclo de vida de Servlet se divide en tres etapas:

1. Etapa de inicialización: llamar al método init()

2. Etapa de respuesta a la solicitud del cliente: llamar al método service ()

3. Fase de terminación: llamar al método destroy()

El proceso detallado es el siguiente:

1. /p>

El contenedor de Servlet carga el Servlet en el siguiente momento:

1. El contenedor de Servlet se carga automáticamente al iniciar ciertos Servlets, solo es necesario implementarlo entre el archivo web.XML. lt; Servletgt; lt; /load-on-startupgt;

lt; load-on-startupgt; Cuando se inicia el contenedor, el cliente envía el servlet al servlet por primera vez. Al realizar la solicitud

3. Después de actualizar el archivo de clase del servlet, vuelva a cargar el servlet.

Después de cargar el servlet. , el contenedor de Servlet creará una instancia de Servlet y llamará al método init () del Servlet para ejecutarla. El método init() se llama solo una vez durante todo el ciclo de vida del Servlet.

2. El principio de funcionamiento de Servlet:

En primer lugar, expliquemos brevemente el proceso de recepción y respuesta de Servlet a las solicitudes de los clientes. Primero, el cliente envía la solicitud y luego. Servlet llama al método service() para responder a la solicitud. Sí, puede ver en el código fuente que el método de coincidencia de solicitudes en el método service() elige llamar al método doGet(). El método service () coincide con el método solicitado, elige llamar a doGet, doPost y otros métodos, luego accede al método correspondiente y llama al método de la capa lógica para responder al cliente. En la interfaz de Servlet y GenericServlet, no hay métodos doGet, doPost ni otros. Estos métodos están definidos en HttpServlet, pero todos devuelven información de error, por lo que cada vez que definimos un Servlet, debemos implementar métodos como doGet o doPost. estos métodos.

Cada Servlet personalizado debe implementar la interfaz de Servlet. La interfaz de Servlet define cinco métodos. Tres de los métodos más importantes están relacionados con el ciclo de vida del Servlet, a saber, init () y el servicio () mencionados anteriormente. () métodos. GenericServlet es un servlet genérico, no específico de protocolo, que implementa la interfaz de servlet. HttpServlet hereda de GenericServlet, por lo que HttpServlet también implementa la interfaz Servlet. Entonces, cuando definimos un Servlet, simplemente heredamos de HttpServlet.

La interfaz Servlet y GenericServlet no son específicos de ningún protocolo, y HttpServlet es una clase específica del protocolo HTTP. Por lo tanto, cuando HttpServlet implementa el método service(), forzará la solicitud ServletRequest y ServletResponse. HttpRequest y HttpResponse.

servicio público nulo (ServletRequest req, ServletResponse res)

lanza ServletException, IOException

{

Solicitud HttpRequest;

Respuesta HttpResponse;

intenta

{

req = (HttpRequest)solicitud;

res = (HttpResponse)respuesta;

}

catch(ClassCastException e)

{

lanzar nueva ServletException("respuesta de solicitud no HTTP");?

}

servicio(solicitud, respuesta);

}

Al final del código, el propio servicio del HTTPServlet (solicitud, respuesta) luego llame al método doXXX correspondiente de acuerdo con la solicitud. Dado que el método HttpServlet doXXX devolverá información de error,

protected void doGet(HttpServletRequest res, HttpServletResponse resp)

lanza ServletException IOException

{

Protocolo de cadena = req.getProtocol();

if(protocol.equals("1.1"))

{

resp.sendError(HttpServletResponse.SC.METHOD.NOT.ALLOWED, msg);

}

esle

{

resp.sendError( HttpServletResponse.SC_BAD_REQUEST , msj

}

}

}

);