El estudio de JAVA señala la tecnología de 19 conversaciones, MVC, arquitectura de tres niveles

Tecnología conversacional

Hay varias solicitudes y respuestas en una sesión. Una sesión se refiere a la primera vez que el navegador envía una solicitud a los recursos del servidor, la sesión se establece, hasta que una de las partes se desconecta.
Función: compartir datos dentro del alcance de una sesión.
Tecnología de sesión del cliente:
Tecnología de sesión del servidor de cookies : Sesión

1. Cookie

1.1 Conceptos básicos

Tecnología de sesión de cliente, guarda datos en el cliente.

1.2 Inicio rápido

Siga los pasos:
1. Crear objeto Cookie, vincular datos
nueva Cookie (nombre de cadena, valor de cadena)
2. Enviar objeto Cookie
response.addCookie (Cookie cookie)
3. Obtener cookie, obtener datos
Cookie [] request.getCookies ()

@WebServlet("/cookieDemo1")
public class CookieDemo1 extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //创建Cookie对象
        Cookie c=new Cookie("msg","hello");
        //发送Cookie
        response.addCookie(c);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        this.doPost(request,response);
    }
}
@WebServlet("/cookieDemo2")
public class CookieDemo2 extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //获取Cookie
        Cookie[] cs=request.getCookies();
        if (cs!=null){
    
    
            for (Cookie c : cs) {
    
    
                String name = c.getName();
                String value = c.getValue();
                System.out.println(name+":"+value);
            }
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        this.doPost(request,response);
    }
}

1.3 Análisis de principios

Implementación basada en la cookie de encabezado de respuesta y la cookie de encabezado de solicitud

1.4 Características y funciones

Características
1.datos de cookies almacenados en el navegador del cliente
2. El navegador está limitado a un solo tamaño de cookie, y la cookie en el número total del mismo dominio también tiene
efecto limitado
1.cookie generalmente menos sensible para almacenar pequeñas cantidades de datos
2 .Complete la identificación del servidor del cliente sin iniciar sesión

1.5 Caso de acceso

@WebServlet("/CookieTest")
public class CookieTest extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        response.setContentType("text/html;charset=utf-8");
        //获取所有Cookie
        boolean flag = false;
        Cookie[] cookies = request.getCookies();
        if (cookies != null && cookies.length > 0){
    
    
            for (Cookie cookie : cookies) {
    
    
                //获取cookie名称
                String name = cookie.getName();
                if ("lastTime".equals(name)){
    
    
                    flag = true;
                    //有该cookie,不是第一次访问
                    //获取当前时间的字符串,重新设置Cookie的值,重新发送cookie
                    Date date = new Date();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                    String str_date = sdf.format(date);
                    str_date = URLEncoder.encode(str_date, "utf-8");
                    cookie.setValue(str_date);
                    response.addCookie(cookie);
                    //响应数据
                    String value = cookie.getValue();
                    value = URLDecoder.decode(value,"utf-8");
                    response.getWriter().write("欢迎回来,您上次访问时间为" + value);
                    break;
                }
            }
        }
        if (cookies == null || cookies.length == 0 || flag == false){
    
    

            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            String str_date = sdf.format(date);
            str_date = URLEncoder.encode(str_date, "utf-8");
            Cookie cookie = new Cookie("lastTime", str_date);
            response.addCookie(cookie);
            response.getWriter().write("欢迎您第一次访问!");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        this.doPost(request, response);
    }
}

2. Sesión

1.1 Conceptos básicos

Tecnología de sesión del lado del servidor, compartir datos entre múltiples solicitudes en una sesión y guardar los datos en objetos del lado del servidor

1.2 Inicio rápido

HttpSession 对象 :
Object getAttribute (nombre de cadena)
void setAttritube (nombre de cadena, valor de objeto)
void removeAttritube (nombre de cadena)

@WebServlet("/sessionDemo1")
public class SessionDemo1 extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //获取session
        HttpSession session = request.getSession();
        //存储数据
        session.setAttribute("msg","hello session");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        this.doPost(request,response);
    }
}
@WebServlet("/sessionDemo2")
public class SessionDemo2 extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //获取session
        HttpSession session = request.getSession();
        //获取数据
        Object msg = session.getAttribute("msg");
        System.out.println(msg);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        this.doPost(request,response);
    }
}

1.3 Análisis de principios

La sesión depende de Cookie. La primera vez que obtenga la Sesión, sin Cookie, se creará una nueva Sesión en la memoria.

1.4 Características y funciones

Características
1. La sesión se utiliza para almacenar los datos de múltiples solicitudes para una sesión, almacenados en el lado del servidor
2. La sesión puede almacenar cualquier tipo y tamaño de datos
, la diferencia entre la sesión y la cookie 1. Los datos de la sesión se
almacenan en el lado del servidor , y los datos de las cookies se almacenan en el lado del servidor Cliente
2. La sesión no tiene límite de tamaño de datos, la cookie tiene límite de tamaño de datos
3. Los datos almacenados en la sesión son más seguros

3. JSP

3.1 Conceptos básicos

Páginas del servidor Java: páginas del lado del servidor Java

3.2 secuencia de comandos JSP

La forma en que JSP se utiliza para definir el código Java
<% code%>: El código Java definido está en el método de servicio. Lo que se puede definir en el método de servicio se puede definir en el script.
<%! Code%>: el código Java definido, en la posición de miembro de la clase Java después de la conversión JSP.
<% = Code%>: El código Java definido se mostrará en la página. Qué se puede definir en la declaración de salida, qué se puede definir en el script

3.3 Instrucciones

Función: Se utiliza para configurar páginas JSP e importar archivos de recursos
Formato: <% @ nombre de instrucción nombre de atributo = valor de atributo%>

3.3.1 comando de página

Configure el
contentType de la página JSP : equivalente a response.setContentType ()
1. Establezca el tipo MIME y el conjunto de caracteres del cuerpo de la respuesta
2. Establezca la codificación de la página JSP actual
import : import package

3.3.2 incluir directiva

Importe el archivo de recursos de la página
<% @ include file = “top.jsp”%>

3.3.3 instrucción taglib

Importar recursos

3.4 Objetos integrados

Objetos que no necesitan ser adquiridos y creados en objetos JSP y que pueden usarse directamente

pageContext: tipo PageContext,
solicitud de datos para compartir página actual : tipo HttpServletRequest, una solicitud para acceder a múltiples recursos
sesión: tipo HttpSession, compartir datos entre múltiples solicitudes en una
aplicación de sesión : tipo ServletContext, compartir datos entre múltiples usuarios
respuesta: tipo HttpServletResponse, objeto Response
página: tipo de objeto, objeto de la
salida de página actual : tipo Jspwriter, objeto de salida, datos a la
configuración de la página : tipo de ServletConfig, objeto de configuración de servlet
excepción: tipo Throwable, objeto de excepción

4. Expresión EL

4.1 Conceptos básicos

El lenguaje de expresión
se puede utilizar para simplificar la escritura de código Java en páginas JSP.
Sintaxis básica: $ {}
ignorar expresiones EL: establezca isIgnored = "true" en el comando page en JSP para ignorar todas las expresiones EL

4.2 Uso básico

4.2.1 Operación

Operador aritmético: + - * /%
Operador de comparación:> <> = <= ==! =
Operador lógico: && ||!
Operador vacío: vacío se usa para determinar si un objeto de cadena, colección o matriz es nulo y la longitud es 0

4.2.2 Obtener valor

Sintaxis: $ {domain name city.key name} obtiene el valor de la clave especificada del dominio especificado
nombre de dominio city:
pageScope -> pageContext
requestScope -> request
sessionScope -> session
applicationScope -> application

Obtener el valor del objeto:

    <%
        Person p=new Person("Kobe",24);
        request.setAttribute("p",p);
    %>
    ${
    
    p.name}
    ${
    
    p.num}

Obtener lista de colección
$ {nombre de dominio.nombre de clave [índice]}

Obtener colección de mapas
$ {nombre de dominio.nombre de clave.nombre de clave}

    <%
        Person p=new Person("Kobe",24);
        request.setAttribute("p",p);
        List list=new ArrayList();
        list.add(24);
        list.add(23);
        request.setAttribute("list",list);
        Map map=new HashMap();
        map.put("name","Kobe");
        map.put("num",24);
        request.setAttribute("map",map);
    %>
    ${
    
    p.name}<br>
    ${
    
    p.num}<br>
    ${
    
    list[0]}<br>
    ${
    
    list[1]}<br>
    ${
    
    map.name}<br>
    ${
    
    map["num"]}<br>

MVC

1. Historial de evolución de JSP

1. En los primeros días, solo había servlet y solo respuesta a los datos de la etiqueta de salida, lo cual era muy problemático.
2. JSP simplifica el desarrollo del servlet. Si JSP se usa en exceso, se escribe una gran cantidad de código Java y HTML en JSP, que dificulta la división y la cooperación con el mantenimiento y la cooperación
3. El desarrollo web Java, basado en el modelo de desarrollo MVC, hace que el diseño del programa sea más razonable

2.MVC

2.1 Modelo

JavaBean, operaciones comerciales específicas completas

2.2 Ver

JSP, mostrar datos

2.3 Controlador

Servlet, obtenga la entrada del usuario, llame al modelo y entregue los datos a la vista para su visualización

3. Ventajas y desventajas

3.1 ventajas

Acoplamiento bajo, fácil de mantener, puede facilitar la división del trabajo y la colaboración
, alta reutilización

3.2 Desventajas

La estructura del proyecto es compleja y requiere altos desarrolladores.

Arquitectura de tres niveles

1. Capa de interfaz (capa de presentación)

La interfaz que el usuario puede ver. Los usuarios pueden interactuar con el servidor a través de componentes en la interfaz.

2. Capa de lógica empresarial

Procesamiento de lógica empresarial

3. Capa de acceso a datos

Archivo de almacenamiento de datos operativos

Supongo que te gusta

Origin blog.csdn.net/qq_44708714/article/details/107523330
Recomendado
Clasificación