[JavaEE Elementary] Instalación y uso de Tomcat y primera comprensión de Servlet

1. Instalación y uso de Tomcat

1.1 Instalación de Tomcat

Busque Tomcat en el navegador y abra la página web oficial. Sitio web oficial de Tomcat
inserte la descripción de la imagen aquí
Haga clic para descargar Tomcat8.
inserte la descripción de la imagen aquí
Haga clic para descargar el paquete comprimido.
inserte la descripción de la imagen aquí
Después de la descarga, descomprima.
El directorio obtenido después de la descompresión:
inserte la descripción de la imagen aquí
La siguiente es una explicación parcial de los archivos clave anteriores:

  • bin: Programa/script ejecutable Inicie Tomcat aquí.
  • conf: Configuración, utilizando el formato xml para representar la configuración del servidor, como modificar el número de puerto vinculado a tomcat, debe modificar el contenido aquí.
  • lib: algunas bibliotecas de las que depende tomcat (no consideradas por el momento)
  • logs(重要): Registro, el registro de la operación de Tomcat está aquí. Si hay un problema con el programa, ¿cómo solucionarlo? Solo mire este registro.
  • webapps: Cada aplicación web es un "sitio web". Se pueden implementar varios sitios web en un tomcat, que aquí se denomina "aplicaciones web". Aquí hay muchos directorios, y cada directorio se considera un sitio web independiente. El código que aprenderemos más adelante también es implementado en esta webapps.

1.2 Inicio de Tomcat

Inicio de Tomcat:
inserte la descripción de la imagen aquí
después del inicio, podemos ver:
inserte la descripción de la imagen aquí
Server startup in xxx mses un inicio exitoso.

1.3 Tomcat implementa la página frontal

Cree una nueva pestaña de página web, ingrese 127.0.0.1:8080a la página de bienvenida de Tomcat. (Tomcat debe estar ejecutándose en este momento)
inserte la descripción de la imagen aquí
8080es el número de puerto predeterminado de Tomcat. Al igual que el número de puerto predeterminado de MySQL 3306. A continuación, intentamos
implementar el código front-end en Tomcat: Tome
como ejemplo el código del sistema de blog aprendido anteriormente:
copie el sistema de blog en la carpeta webapps (despliegue):
inserte la descripción de la imagen aquí
ingrese en la barra de navegación http://127.0.0.1:8080/blog/blog_list.htmlpara acceder a través de la red.
La ruta de primer nivel (blog) también tiene un nombre, llamado application path/context path
inserte la descripción de la imagen aquí
esto La página es diferente de la anterior. Se accede a esta a través de la red. Se accede a la página anterior a través de la ruta del archivo. Se puede acceder al acceso a la red a través de
inserte la descripción de la imagen aquí
hosts, y la ruta solo puede acceder a páginas en su propio host.

2. Servlet

2.1 ¿Qué es un servlet?

Servlet: Es una tecnología para realizar páginas dinámicas . Es una API nativa de desarrollo web proporcionada por Tomcat para java.
Las páginas web se dividen en dos categorías:
páginas estáticas: el contenido de las páginas siempre es fijo. (página de inicio de Baidu)
inserte la descripción de la imagen aquí
páginas dinámicas: páginas El contenido cambia con diferentes parámetros de entrada (página de estructura de Baidu)
inserte la descripción de la imagen aquí

2.2 El primer programa Servlet

Primero escribamos un programa hola mundo: se espera que escriba un programa Servlet y lo implemente en Tomcat, acceda a él a través de un navegador y obtenga la cadena hola mundo.

Hay siete pasos en total:

  1. crear proyecto
  2. Introducir dependencias
  3. Crear estructura de directorio
  4. Escribir código
  5. empaquetador
  6. programa de despliegue
  7. verificar
  1. Crear un proyecto
    Aquí debe crear un mavenproyecto.

maven es una herramienta de "gestión de proyectos" que puede:

  1. Estandarizar la estructura de directorios
  2. administrar dependencias
  3. Construir
  4. Embalar
  5. prueba
    ...

Abra la idea:
inserte la descripción de la imagen aquí
Nota: Cuando use maven por primera vez, después de crear el proyecto, leerá el artículo a continuación y cargará algunas dependencias de maven desde el almacén central. Lleva mucho tiempo. Preste atención al directorio aquí
inserte la descripción de la imagen aquí
:
inserte la descripción de la imagen aquí
2. Importar dependencias
Abra el almacén central de maven y busque Servlet. Elija la versión
inserte la descripción de la imagen aquí
aquí 3.1.0.
inserte la descripción de la imagen aquí
Copie el código maven pom.xml.
inserte la descripción de la imagen aquí
¡Preste atención para agregar etiquetas! Si hay varias dependencias, simplemente cópielas.
inserte la descripción de la imagen aquí
Si la marca roja es roja para mucho tiempo, actualice:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
3. Cree una estructura de directorios
Aunque maven lo ha creado automáticamente para nosotros Algunos directorios, pero no lo suficiente. Aquí necesita usar maven para desarrollar un programa web, y necesita otros directorios. (1)
Crear mainun webappdirectorio bajo el directorio (2) Cree un directorio
bajo la aplicación web (3) En WEB-INF A continuación, cree un archivo (4) y escriba el siguiente código en web.xml.WEB-INF
web.xml
inserte la descripción de la imagen aquí

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>

inserte la descripción de la imagen aquí
El programa Servlet que escribimos es equivalente al carro. Tomcat es equivalente a la parte delantera del coche. Ponemos el programa Servlet escrito en el directorio webapps, que es equivalente a colgar el carro en la parte delantera del coche. ¿Cómo se identifica Tomcat? ¿cuáles del directorio de webapps hay que extraer y ejecutar? Los compartimentos, cuáles no. Debe identificarse mediante el código que copiamos y pegamos. (WEN-INF/web.xml). Es equivalente al certificado de nombre
. .

  1. Escribir código
    inserte la descripción de la imagen aquí

(1) HttpServletEs una clase preparada proporcionada en la API de Servlet. Escribir código de Servlet generalmente hereda este HttpServlet.
(2) doGetMétodo de reescritura

inserte la descripción de la imagen aquí
doGetEl método que escribimos no requiere que lo llamemos manualmente, sino que lo llamemos. Tomcat activará el método Tomcatcuando reciba la solicitud . Tomcat construirá dos parámetros, y . Entre ellos están las cadenas leídas del socket TCP, según El objeto analizado por el protocolo HTTP. Es un objeto vacío (el programador construye resp de acuerdo con el requisito de solicitud y la lógica comercial en doGet) resp es un parámetro de salida. : Calcula la respuesta de acuerdo con la solicitud. Este método de la clase principal simplemente devuelve una página de error, debe eliminarse.getdoGetreqrespreqresp
doGet
super.doGet();

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

//注解是java中特殊的类,Java专门定义了一种"语法糖"来实现注解
//注解的作用,针对一个类/方法,进行额外的"解释说明"
//赋予了这个类.方法额外的功能/含义
//Tomcat实现的
//此处 @WebServlet("/hello") 的作用是:
//把当前的类,和一个HTTP请求的路径关联起来
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
        //在服务器的控制台里打印
        System.out.println("hello world");
        //将helloworld返回到客户端.
        //getWriter()会创建一个 write 对象
        //此处的 write 操作其实是往resp的body部分进行写入.
        //等resp对象整个构造好了,tomcat会统一转成 HTTP 相应的格式再写 socket
        resp.getWriter().write("hello world");
    }
}

doGet es llamado por Tomcat cuando recibe . (Asociado con diferentes clases)rutas pueden desencadenar diferentes códigosuna solicitud Get. Si es bajo o no, depende de la ruta de la solicitud GET actual. Diferentes

  1. Empaquetar el programa
    Compile el programa, obtenga algunos .classarchivos y luego empaquete estas .classes en un paquete comprimido.
    Un paquete jar es un paquete comprimido compuesto por .classes, pero aquí necesitamos empaquetar un paquete war. Un paquete jar es solo un paquete ordinario. programa java. El paquete es el programa exclusivo de Tomcat para describir la aplicación web. Un paquete de guerra es una aplicación web. Haga
    inserte la descripción de la imagen aquí
    doble clic en el paquete para empaquetar:
    inserte la descripción de la imagen aquí
    de forma predeterminada, maven imprime el paquete jar y necesita ajustar el código:
    inserte la descripción de la imagen aquí
    reempaquetar:
    inserte la descripción de la imagen aquí
  2. Implemente el programa Simplemente copie
    los paquetes en .Inicie Tomcat.wartomcatwebapps

    inserte la descripción de la imagen aquí
  3. Verifique
    Ingrese en la barra de direcciones:http://127.0.0.1:8080/hello_servlet/hello
    inserte la descripción de la imagen aquí

Resumen: después de ingresar la URL en el navegador, el navegador crea una solicitud HTTP GET correspondiente y la envía a Tomcat. Tomcat determina la aplicación web específica de acuerdo con la ruta de primer nivel y determina a cuál llamar de acuerdo con la ruta de segundo nivel. Clase Luego determine qué método (doGET, doPost) llamar a HelloServlet a través del método GET/POSE

En el proceso anterior, los dos procesos de 5 paquetes y 6 programas de implementación pueden usar el complemento Tomcat de IDEA para integrar Tomcat en IDEA. Esto nos ahorra el proceso de empaque manual. El proceso de implementación manual solo necesita hacer clic para ejecutar Empaquetado e implementación automáticos.

Despliegue automático de paquetes basado en el complemento tomcat , adecuado para la etapa de desarrollo, modifica frecuentemente la verificación del código.Despliegue manual del paquete , adecuado para la etapa en línea, programa de lanzamiento.

Use el complemento tomcat:
complemento: extensión de función IDEA proporciona algunas API que permiten a los programadores desarrollar complementos y ampliar las funciones existentes de IDEA.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
smart tomcatNecesita configurarlo por primera vez
inserte la descripción de la imagen aquí
Establezca tomcatla ruta
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
pero podemos ver que el inicio falló El
inserte la descripción de la imagen aquí
puerto 8080 está ocupado Puede abrir cmd e ingresar lo siguiente: puede ver
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

En este punto solo falta cerrar Tomcat,
inserte la descripción de la imagen aquí
reiniciar correctamente.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

El principio de funcionamiento de smart tomcat:
en lugar de copiar automáticamente el paquete war (sin cambios en las aplicaciones web), es iniciar tomcat de otra manera. Tomcat admite la especificación de un directorio de aplicación web específico al iniciar, lo que equivale a dejar que tomcat cargue una sola aplicación web para ejecutar .IDEA
inserte la descripción de la imagen aquí
llama directamente a tomcat para permitir que tomcat cargue el directorio en el proyecto actual.

http://127.0.0.1:8080/ va seguido de la ruta de contexto.
Si se implementa copiando directamente el paquete war, la ruta de contexto es el nombre del paquete war (nombre del directorio).
Si se implementa mediante smart tomcat , se puede configurar aquí. El valor predeterminado es el nombre del proyecto.

Estas dos implementaciones son en realidad dos formas de ejecutar Tomcat y tienen diferentes interpretaciones de la ruta de contexto, por lo que se debe prestar especial atención al usarlas.

2.3 Errores comunes

  1. El error común 1: 404
    404 significa que el recurso al que accede el usuario no existe, lo más probable es que la ruta de la URL esté escrita incorrectamente
    inserte la descripción de la imagen aquí
    o que su aplicación web no esté implementada correctamente: web.xml está mal escrito, el nombre del archivo es incorrecto , y la ruta del archivo es incorrecta ok, la ubicación del archivo es incorrecta...
  2. Error común 2: 405
    405 significa que no se ha implementado el método de solicitud HTTP correspondiente. Por ejemplo, si enviamos una solicitud GET en el navegador, pero doGet no está escrito en el código, en este momento aparecerá 405. También puede ser que no hay
    inserte la descripción de la imagen aquí
    ningún método Remove the parent class llamado por defecto, como super.doGet
    inserte la descripción de la imagen aquí
  3. El error común 3: 500
    a menudo es causado por una excepción lanzada en el código Servlet. Este problema se resuelve mejor, porque cuando ocurre 500, el registro de la página le indicará claramente la pila de llamadas de excepción y qué línea de código causó la excepción. Por ejemplo , le damos al
    código Se produce una excepción de puntero nulo.
    inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
4. Error común 4: Aparece una página en blanco.La
lógica en el método no escribe código como resp.getWriter().write()

  1. Error común 5: No se puede acceder a la página.
    La razón más común es que Tomcat no se ha iniciado o se ha bloqueado. Si apagamos Tomcat, no se puede acceder a la página. Si Tomcat no se puede iniciar, puede ser un conflicto de puertos.

Supongo que te gusta

Origin blog.csdn.net/qq_61138087/article/details/131931235
Recomendado
Clasificación