Marco y desarrollo de aplicaciones (JavaWeb Learning Parte 3)

Capítulo 1 EL y JSTL (pasable)

JSP Expression Language (EL) le permite acceder fácilmente a los datos de la aplicación almacenados en los componentes de JavaBeans. JSP EL le permite crear expresiones aritméticas y lógicas. En las expresiones JSP EL, puede usar números enteros, flotantes, cadenas, constantes integradas verdaderas y falsas para representar valores booleanos y nulos.

Por ejemplo, cuando especifica valores de atributo en etiquetas JSP, generalmente solo usa cadenas.

Ejemplo <jsp:setProperty name = \"box\" property = \"perimeter\" value = \"100\"/>   

JSP EL le permite especificar expresiones para cualquiera de estos valores de atributo. La sintaxis simple de JSP EL es la siguiente

${expr} Aquí expr especifica la expresión misma. Los operadores más utilizados en JSP EL son `.` y `[]`. Estos dos operadores le permiten acceder a varias propiedades de Java Beans y objetos JSP integrados. Por ejemplo, la etiqueta de sintaxis `<jsp:setProperty>` anterior podría escribirse en una expresión como <jsp:setProperty name = \"box\" property = \"perimeter\" value = \"${2*box.width+2*box.height}\"/> Cuando el compilador JSP ve el formulario ${} en una propiedad, genera código para evaluar la expresión y reemplazar el valor de la expresión.

JSTL es la biblioteca de etiquetas estándar JSP. EL es en realidad un lenguaje definido por JSTL para facilitar el acceso a los datos. (EL sirve a JSTL)

¿Por qué introducir EL y JSTL?

Porque al diseñar páginas JSP, demasiado código fuente de Java no es propicio para el desarrollo del proyecto. Y solo una parte del código Java se puede eliminar a través de servlet o JavaBean. Así nació la biblioteca de etiquetas estándar JSTL.
 

Estructura gramatical básica EL:

${ Expresión }

Operadores básicos: . y [ ]  

Aquí solo presentamos: Acceso a datos EL.

1 Alcance:

${sessionScope.sessionMsg} //usado más  

${requestScope.requestMsg}       

${applicationScope.applicationMsg}

${pageScope.pageMsg}

El primero es equivalente a:

session.setAttribute("sessionMsg", colección o cadena);

Entonces usar el primero es equivalente a sacar los datos.   // puede guardar la cantidad de código Java

2. Acceder a JavaBean

Formato de sintaxis básica: ${bena.property}

Su uso es similar a la introducción anterior.

Por ejemplo: ${student.stuno} //Obtener el atributo stuno de la clase Student del objeto estudiante.

${sessionScope.student.stuno} //Se almacena en el carrito de compras, el nombre es estudiante y el atributo es el valor del atributo stuno del objeto de estudiante almacenado en el nombre del carrito de compras.

(No presentaré mucho sobre el uso de EL, y se usa relativamente raramente. Si es solo para el trabajo, básicamente necesita saber un poco de Java ahora, y no necesita mirar el uso de EL. Solo entenderé un poco aquí).

Capítulo 2 Primeros pasos con AJAX

AJAX (Asynchronous JavaScript and XML technology), que incorpora las siguientes tecnologías a través de la tecnología JavaScript . (¡Incluir!)

AJAX es un acrónimo de Asynchronous JavaScript and XML. Es un conjunto de tecnologías interrelacionadas como JavaScript, DOM, XML, HTML/XHTML, CSS, XMLHttpRequest, etc. AJAX le permite enviar y recibir datos de forma asíncrona sin recargar la página web, lo que resulta en una mejor experiencia de usuario y un mejor rendimiento.

AJAX permite que las páginas web se actualicen de forma asíncrona mediante el intercambio de datos con un servidor web en segundo plano. Esto significa que partes de una página web se pueden actualizar sin recargar toda la página.
 

Contiene cinco partes:

1. Tecnología de adquisición de datos asíncrona: XMLHttpRequest  

2. Tecnología de presentación basada en estándares: HTML/XHTML

3. Tecnología dinámica de visualización e interacción: DOM (Document Object Model Document Object Model)

4. Tecnología de intercambio y manipulación de datos: utiliza XML y XSLT.

5. JavaScript: integra las primeras cuatro partes.

AJAX tiene algunas desventajas:

1. Hay ciertas restricciones en los navegadores y es posible que no esté disponible para navegadores incompatibles

2. AJAX no actualiza la página y el botón Atrás del navegador no es válido. Por lo tanto, el cliente no puede retroceder a una operación anterior.

(Del mismo modo, el capítulo AJAX se omite temporalmente, pero vale la pena aprender este punto de conocimiento, y puede aprenderlo más tarde. El modo asíncrono se usa más). Se recomienda volver al primer paso del aprendizaje de JavaWeb y revisar los puntos de conocimiento de JavaScript . Conozca el módulo de inicio de sesión y registro.

Capítulo 3: Carga y descarga de códigos y archivos de verificación

(Tipos de módulos comunes para sitios web)

El significado del código de verificación es evitar el cracking por fuerza bruta.

Aprende a copiar aquí. Dadas tres tareas:

1. Primero aprenda el inicio de sesión y el registro de JavaScript (completado autónomo)

Se puede dar cuenta de que el número de cuenta y la contraseña no pueden ser una verificación de JavaScript vacía, pero si desea verificar si el número de cuenta y la contraseña son correctos, debe usar AJAX para crear una página JSP para lograrlo.

Traté de obtener el número de cuenta y la contraseña en la clase Dao (no, no tiene solicitud. Vaya al servlet para obtener los datos reales), y el método de usar el carrito de compras de la sesión falló. Hay algunos problemas.

Si usa un carrito de compras, agregue una declaración de juicio. Aunque parece que se puede realizar el juicio de JavaScript, la premisa de la sesión es que el carrito de compras no puede estar vacío. Incluso si se agrega la condición de juicio, debe iniciar sesión una vez para realizar el juicio. No cumple con la situación de verificación si es el primer inicio de sesión.

2. Vaya a Internet para copiar el código del código de verificación para su propio uso.

URL de origen: OSCHINA - Comunidad china de intercambio de tecnología de código abierto

Encontré un pequeño problema aquí, por ejemplo, aunque el código de verificación jsp que copié está disponible.

Sin embargo, cuando se usan en combinación, cuando el módulo del código de verificación se coloca en inicio de sesión y registro, se encuentra un problema de sincronización. Por ejemplo, uso la sesión para almacenar el código de verificación en la página jsp del código de verificación. Pero en login.jsp, el código de verificación que se muestra en la imagen es diferente del código de verificación almacenado.

Aquí queda pensar, cómo modificarlo para que el código de verificación almacenado sea consistente con el código de verificación mostrado.

Suplemento: Cómo utilizar el código de verificación.

(1) En la página jsp, la entrada <input type = "text"> es de tipo texto, además, se requiere una salida adicional <img src = "code.jsp" onclick = "refresh()" name = "code2">

(2) Cuando se usa JavaScript, aquí se usa el método refresh(). Cómo hacer clic en la página para actualizar la página.

actualizar(){ login.form.code2="code.jsp?id=" + Math.random() }  

Presta especial atención a las matemáticas.

Situación inesperada: si se hace clic en la imagen, no se actualiza. Y el código no reporta errores. Se recomienda usar la depuración para ejecutar y luego hacer clic en la imagen, le indicará dónde está equivocado. (Un punto que hice mal esta vez es que el formulario de inicio de sesión está escrito como longinform. Pero debido a que está en la página de JavaScript, no informará un error en sí mismo. Solo se puede depurar)

(3) Cómo obtener el valor de la sesión en JavaScript. Puede agregar expresiones jsp.

Por ejemplo: código var = formulario de inicio de sesión.código.valor

           var code2 = '<% =session.getParamter("code2") %>'  // Preste atención a las comillas simples  

(4) Aunque se obtiene de acuerdo con el tercer paso, el problema final es que el código de verificación almacenado en la sesión es diferente al código de verificación que se muestra en la imagen. La sesión solo guarda el número de código de verificación antes de la última actualización. (reservado como preguntas para pensar)

3. Vaya a Internet para copiar los códigos cargados y descargados para su propio uso.

(dejado como tarea)

Capítulo 4: Principios básicos de MVC y Struts2 (puntos pesados ​​y difíciles)

Primero aprenda: pensamiento MVC. Este es un patrón de diseño. (Se recomienda aprender un libro sobre patrones de diseño, recomendación: Big Talk Design Patterns.)

El nombre completo de MVC: Model View Controller Corresponde a tres módulos respectivamente.

 En el desarrollo web, los conceptos centrales del pensamiento MVC son los siguientes:


(1) M (Modelo): encapsula la estructura de datos y la lógica comercial de la aplicación, y refleja de forma centralizada el estado de la aplicación. Cuando el estado de los datos cambia, se puede reflejar en la vista. JavaBean es muy adecuado para este rol.


(2) V(View): Es la expresión externa del Modelo, que se refleja cuando cambia el estado del modelo. JSP es perfecto para este papel.


(3) C (Controlador): Responda a la entrada del usuario, vincule el modelo y la vista, sea responsable de escribir datos en el modelo y llame a la vista. Los Java Servlets son perfectos para este rol.

Resumen: JavaBean encapsula el contenido de la base de datos (incluidos: beans y clases dao). El servlet responde a los datos enviados por el JSP y puede pasar los datos obtenidos del JavaBean al JSP. JSP implementa la página.

 Permítanme presentarles de nuevo: Struts2. Aunque el patrón de diseño MVC es fácil de usar, los estilos de los diferentes programadores son diferentes. La estandarización es particularmente importante. El marco Struts es una estructura estandarizada.

(Pase, no veo ningún beneficio para esta arquitectura en el libro).

¡Pero este patrón de diseño de MVC debe tenerse en cuenta! , esta idea se utilizará en el futuro.

Ejemplos de aplicación:

En la revisión resumida integral de java y beans, se utiliza esta idea. Puedes ir y echar un vistazo.

(27 mensajes) Resumen completo de revisión de Java y bean (VO), dao, Servlet, jsp_one day321's blog-CSDN blog

Capítulo cuatro: Seguridad del sitio web

El primer tipo: ataque de manipulación de URL

Acceso ilegal a recursos protegidos adivinando dónde se almacenan ciertos recursos.

El segundo tipo: Ataque de secuencias de comandos entre sitios web (abreviatura: XSS)

El tercer tipo: ataque de inyección SQL

Cuarto: protección y verificación de contraseña

Necesita usar MD5 u otro algoritmo de encriptación. Escribir un programa Java solo. De esta forma, lo que se almacena en la base de datos es el texto cifrado.

Proyecto de formación:

El primer proyecto: inicio de sesión y registro simples, y realizar la consulta difusa de la información del estudiante después del inicio de sesión. (Pensamiento: agregue la verificación del código de verificación y salte una advertencia si el número de cuenta y la contraseña están vacíos)

Segundo Proyecto: Sistema de Votación

Análisis por patrón de diseño. Aquí utilizo el método de diseño de modelos MVC.

(1) Análisis del pensamiento:

1. Modelo de datos: (JavaBeans: incluye beans de encapsulación de datos y clases dao de conexión de datos)

                 Paquete de frijoles:

                              Modelo de votación: número de almacenamiento, nombre, número de votos

                  Conexiones de datos:

                            Conéctese a la base de datos y almacene el contenido de la base de datos en el modelo de votación

2. Procesamiento de datos: (Servlet)

                  Procesamiento de votaciones: reciba la información de votación de JSP, agregue 1 al contenido de la base de datos y devuelva el resultado a JSP

3. Análisis de funciones: (Jsp)

                  Función de votación: emitir un voto.

                   //El libro es más detallado aquí. Una página se usa para mostrar la interfaz de votación, y la otra página se usa para recibir votos de los usuarios. El número correspondiente de votos se incrementará en 1 y luego volverá a la primera página una vez que se complete el trabajo.

(Cuando sea necesario, haga dibujos y diseñe la estructura. Consulte el libro P262, Diseño Estructural)

(2) Diseño de diagrama de clases UML:

Modelo de votación (Vote.java): no:Cadena 、 nombre:Cadena 、 ticket:int

Datos de conexión (Votedao.java): votedao(Vote): ArrayList

Procesamiento de votos (VoteServlet): obtener datos directamente y almacenarlos en la sesión

Página de votación (vote.JSP): de diseño propio

Puede comenzar a escribir código a mano.

(3) Análisis de código: (este paso es una adición adicional, principalmente utilizada para almacenar las deficiencias en el proceso de escritura de mi propio código)

Supongo que te gusta

Origin blog.csdn.net/qq_55928086/article/details/131270562
Recomendado
Clasificación