Aprendizaje de la serie Servlet (1)

Programa de servlet (1)

Uno, que es Servlet

  • El programa Servlet es una interfaz Servlet es uno de los tres componentes principales de JavaWeb
  • Un programa Servlet es un pequeño programa java que se ejecuta en un servidor web y se puede utilizar para recibir solicitudes del cliente y responder al cliente.
  • Un programa Servlet es un pequeño programa java que se ejecuta en un servidor web y se puede utilizar para recibir solicitudes del cliente y responder al cliente.

Dos, implementar manualmente un programa Servlet

1. Cree una clase Java para implementar la interfaz del servlet.

public class demo implements Servlet{
    
    
    @Override
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    
    
        System.out.println("hello word");
    }

    @Override
    public void destroy() {
    
    

    }

    @Override
    public ServletConfig getServletConfig() {
    
    
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getServletInfo() {
    
    
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void init(ServletConfig arg0) throws ServletException {
    
    
        // TODO Auto-generated method stub
        
    }
}

2. Implementar el método de servicio

@Override
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    
    
        System.out.println("hello word");
    }

3. Debe configurar una dirección de acceso al servlet en el archivo Web.xml.

<!-- servlet标签 表示在web服务器上配置了一个Servlet程序 -->
 <servlet>
    <!-- servlet唯一的名字 -->
    <servlet-name>HelloServlet</servlet-name>
    <!-- servlet全类名 -->
    <servlet-class>demo</servlet-class>
 </servlet>
 <!-- servlet-mapping配置一个请求地址 -->
 <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
 </servlet-mapping>

Al acceder, puede usar localhost: número de puerto / nombre del proyecto / hell, porque configuramos su dirección de acceso en el archivo de configuración.

Tres, el ciclo de vida de Servlet

  1. Llame al método de construcción del programa Servlet (se llama a la primera visita)
  2. Llame al método de inicialización init del programa Servlet (se llama al primer acceso)
  3. Llame al método Servlet del programa Servlet (se llama cada vez que lo visita)
  4. Llame al método Servlet del programa Servlet (llamado cuando se detiene el proyecto web)

Cuatro, procesamiento de distribución de solicitudes GET y POST

El procesamiento de distribución de solicitudes es cuando el cliente envía una solicitud al servidor, después de que el servidor obtiene la solicitud, se verifica el tipo de solicitud, ya sea GET o POST. Se obtiene mediante el método getMethod () en la clase HttpServletRequest de la interfaz de solicitud.

public void service(ServletRequest request, ServletResponse response) 
    throws ServletException, IOException {
    
    
//      判断是GET请求还是POST请求
//      getMethod() 可以得到,
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        String method = httpRequest.getMethod();
        System.out.println("请求方式!"+method);
    }

Cinco, herede HttpServlet para implementar el programa Servlet

En el desarrollo real, rara vez implementamos programas Servlet implementando la interfaz Servlet, pero implementamos programas Servlet heredando la clase abstracta HttpServlet, y distribuimos y procesamos solicitudes de clientes reescribiendo doGet () y doPost ().

public class demo1 extends HttpServlet {
    
    
    /*
     * 需要根据你的业务需求,重写doGet或doPost方法
     * doGet在GET请求的时候调用
     * doPost方法在Post请求的时候调用*/    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
    
        super.doGet(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
        
        super.doPost(req, resp);
    }

}

Seis, use Eclipse para crear un programa Servlet

Inserte la descripción de la imagen aquí

Siete, arquitectura Servlet

Inserte la descripción de la imagen aquí

Ocho, clase ServletConfig

(1) Conozca la clase ServletConfig

1. La clase ServletConfig puede reflejar su función esencial a partir del nombre de la clase. ¡Es la clase de información de configuración del programa Servlet!
2. Cada vez que el servidor Tomcat crea un programa Servlet, creará un objeto ServletConfig y lo pasará al método de inicialización init () para su uso inicial.
3. Nota: El programa Servlet aquí es creado por el servidor Tomcat, y la clase ServletCobfig también se crea con él. ¡Aquí es donde tenemos que resolverlo!

(2) Tres funciones de la clase ServletConfig

1. Puede obtener el nombre de la configuración de Servelt de la etiqueta Servlet-name (es decir, el nombre configurado en web.xml)
2. Puede obtener los parámetros de inicialización configurados en la etiqueta.
3. Obtener el objeto ServletConfig

(Tres), realización concreta

Se logra reescribiendo el método init. Hay parámetros de tipo ServletConfig en init (), y getServletName (), getInitParameter ("nombre de parámetro") se llaman a través de los parámetros; getServletConfig () obtiene el nombre, parámetro y objeto del Programa de servlet, respectivamente.

@Override
    public void init(ServletConfig config) throws ServletException {
    
    
//        1、获取<Servlet-name>标签配置的名称
        System.out.println("Servlet的名字:"+config.getServletName());
//        2、获取Servlet程序的初始化参数
        System.out.println("Servlet初始化参数:"+config.getInitParameter("canshu"));
//        3、获取Servlet对象
        System.out.println("Servlet对象:"+config.getServletContext());
    }

(4) Problemas comunes en la codificación del programa Servlet

1. La clase ServletConfig se puede utilizar no solo en el método init (), sino también en otros métodos, como los métodos doget y dopost. Pero tenga cuidado: cuando anula el método init (), no puede usarlo en otros métodos. Si desea usarlo, debe llamar al método super.init (config) en el método init ().

@Override
2     public void init(ServletConfig config) throws ServletException {
    
    
3 //        必须添加,否则不能在其他方法中使用
4         super.init(config);
5     }

2. Al reescribir dogett () y dopost (), no llame a super.doGet (req, resp); o super.doPost (req, resp); de lo contrario, enviará un error al cliente.

@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
        //        super.doGet(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
        //        super.doPost(req, resp);
    }

Supongo que te gusta

Origin blog.csdn.net/weixin_44676935/article/details/104701965
Recomendado
Clasificación