2020-10-30

Día 1 de revisión web de Java

JavaWeb

1. El papel de Servlet:

一般用于控制器,内容比较简单,通常包含以下内容:
1)获得请求参数
2)根据请求参数调用业务方法
3)根据业务方法返回值,决定跳转到哪个页面
4)在跳转页面之前,可以携带数据

Principio del servlet
Cuando el navegador accede al recurso correspondiente en el contenedor web, el recurso correspondiente pasará la información correspondiente de acuerdo con los dos parámetros de Solicitud y Respuesta, y luego saltará al método de servicio en el Servlet, y lo procesará de acuerdo con la clase que escribimos. La solicitud correspondiente eventualmente devolverá la información.
El mapeo
puede entender esto como mapeo. En nuestro archivo de configuración web.xml, el servlet está configurado con la clase de procesamiento que escribimos nosotros mismos, y la ruta de la URL cuando lo visitamos se configura en el servlet-mapping.
ServletContext La
clase ServletContext es como un gran contenedor, que puede usarse para almacenar los datos en cada Servlet. Solo necesitamos usar .setAttribute ("xx", xx) para colocar manualmente los datos en nuestro Servlet en ese gran contenedor.
Redirección y reenvío de solicitudes (énfasis)
Redirección:
Reenvío de solicitudes:
la diferencia entre .forward () :
1. La redirección cambia la URL de la dirección y la barra de direcciones de reenvío permanece sin cambios
2. La redirección puede acceder a recursos externos y el reenvío solo puede acceder a los internos
3. La redirección es un salto del lado del cliente Transferencia, reenvío al servidor salto
4. La redirección son dos solicitudes y el reenvío es una solicitud
de reenvío. Cuando A solicita los recursos de C, pero A no puede acceder directamente, pero B puede acceder a ellos, por lo que visitamos B para Esto es para lograr la
redirección del acceso de A a C. Cuando A necesita acceder a un determinado recurso, primero visita B, pero B no tiene el recurso correspondiente, pero B le dice a A que A debe visitar A, por lo que va a A y luego visita C. Luego obtuve los recursos correspondientes

Dos, cuatro rangos de atributos (alcance):

用于传递数据(有效范围)
	setAttribute(key, value); //存放数据
	getAttribute(key); //读取数据
	removeAttribute(key); //移除数据
	
page:只在当前JSP页面内有效(没啥用)
request:在一次请求内有效(最常用),请求结束时释放内存
	服务器端跳转可以获得,但客户端跳转不能获得
session:在一次会话内有效(尽量少用,会加重服务器的负载),会话失效时释放内存
	会话失效:关闭浏览器、会话超时、调用 session.invalidate()
application:在整个应用内有效(基本不用,只用于缓存),服务器关闭才释放内存	
JSP内置对象的4中属性范围

Página: solo guarda los atributos en una página, no es válido después del salto
Repuest: guarda los atributos solo en una solicitud, el servidor todavía tiene
Sesión: guarda en el alcance de una sesión, no importa qué tipo de salto se pueda usar, pero nuevo No se puede usar la
aplicación al abrir el navegador : guardada en todo el servidor, todos los usuarios pueden usarla.

注意:尽量使用范围比较小的作用域	
page < request < session < application

Tres, método de salto de página

1)服务器端跳转:(主要的方法)
	特点:浏览器地址栏不发生改变,是同一个请求,可以使用request传递数据
	问题:刷新页面,可能导致表单重复提交
	
2)客户端跳转(重定向):(解决表单重复提交)
	特点:浏览器地址栏发生改变,是同一个请求,可以使用request传递数据
	问题:不能通过request传递数据,一般通过QueryString方式传递,即 ?id=xx&name=xx

Cuatro, sesión de sesión:

通过客户端技术实现的一种服务器端技术,通常使用cookie实现,也可以使用url重写
cookie实现:每次请求会携带一个cookie:JSESSIONID
URL重写:每个URL后面都带上?JSESSIONID=xxxx
每个用户,在服务器端都有一个Session空间,所以尽量不使用session传递数据
一般使用session保存用户登陆信息,或者购物车对象

Cinco, los nueve objetos integrados de JSP:

在JSP页面的<%%>中,内置对象,可以直接使用
out, request, response, pageContext, session, application, page, config
exception:只在<%@ page isErrorPage="true"%>时才存在 

9 objetos
incorporados : pageContext solicitud respuesta sesión aplicación config out excepción de página
Varias funciones de objeto importantes:
objeto pageContext : representa el siguiente texto de una página JSP.
objeto de solicitud : recibe la información de solicitud enviada por el cliente.
Objeto de respuesta : responder a la solicitud del cliente y enviar el resultado procesado por el servidor web al cliente.
Objeto de sesión : inicio de sesión completo de usuario, cierre de sesión, etc.
Objeto de aplicación : se utiliza para almacenar y recuperar información que se puede compartir entre todos los usuarios
Objeto de configuración : recuperar, esta información de configuración inicializada.
Objeto de salida : para completar la operación de salida de la página, utilice el método printin () o print () para generar información.

Seis, sintaxis JSP:

JSP本质上是一个模板文件,由html代码+Java代码片段
注意:以后尽量在JSP文件中不要使用Java代码,而应该使用JSTL标签库+EL表达式	
<% Java语句 %>	: 必须以分号结尾
<%= 表达式 %>	: 不能以分号结尾,等价于  <% out.print(表达示); %>
<%-- 注释 --%>
<%! 属性或方法的声明 %>
<%@ 指令 属性值1 属性值2 %>

Siete, instrucciones JSP:

page: 	import, pageEncoding
include:  包含1个外部文件(可能不是JSP页面), 类似于 #include <xx>
taglib:	 引入标签库
注意:自定义标签文件中,还有一些指令

8. El objeto implícito de la expresión EL: $ {pageScope}


<br/>---------------从指定的page域中查找数据------------------------<br/>
<!-- pageScope——代表page域中用于保存属性的Map对象 -->
<%
    pageContext.setAttribute("name","aaa");  //map
%>
${pageScope.name }

<br/>---------------从request域中获取数据------------------------<br/>
<!-- requestScope——代表request域中用于保存属性的Map对象 -->
   <%
       request.setAttribute("name","bbb");  //map
   %>
   ${requestScope.name }

   <br/>---------------从session域中获取数据------------------------<br/>
   <!-- sessionScope——代表session域中用于保存属性的Map对象 -->
   ${sessionScope.user }

   <!--applicationScope——代表application域中用于保存属性的Map对象  -->

   <br/>--------------获得用于保存请求参数map,并从map中获取数据------------------------<br/>
   <!-- param——表示一个保存了所有请求参数的Map对象 -->
   <!-- http://localhost:8080/day12/3.jsp?name=aaa  -->
   ${param.name }
       <!-- 此表达式会经常用在数据回显上 -->
       <!-- 模拟的应用场景是表单提交到后台校验没有通过,回到注册页面时的数据回显 -->
   <form action="${pageContext.request.contextPath }/servlet/RegisterServlet" method="post">
       <input type="text" name="username" value="${param.username }">
       <input type="submit" value="注册">
   </form>

       <br/>--------------paramValues获得请求参数 //map{"",String[]}------------------------<br/>
       <!-- paramValues——表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[] -->
   <!-- http://localhost:8080/day12/3.jsp?like=aaa&like=bbb -->
   ${paramValues.like[0] }
   ${paramValues.like[1] }

       <br/>--------------header获得请求头------------------------<br/>
       <!-- header——表示一个保存了所有http请求头字段的Map对象 -->
   ${header.Accept }
   ${header["Accept-Encoding"] }<!-- 通过.运算符解决不了,用[] -->

   <br/>--------------获取客户机提交的cookie------------------------<br/>
   <!-- cookie——表示一个保存了所有cookie的Map对象 -->
   <!-- 从cookie隐式对象中根据名称获取到的是cookie对象,要想获取值,还需要.value -->
   ${cookie.JSESSIONID.value }

   <br/>--------------获取web应用初始化参数------------------------<br/>
   <!-- initParam——表示一个保存了所有web应用初始化参数的map对象 -->
   ${initParam.xxx }  //servletContext中用于保存初始化参数的map
   ${initParam.root }

Nueve, biblioteca de etiquetas

Biblioteca de etiquetas estándar JSP (JSTL) La
biblioteca de etiquetas estándar JSP (JSTL) es una colección de etiquetas JSP que encapsula las funciones básicas comunes de las aplicaciones JSP.

JSTL admite tareas generales y estructuradas, como iteración, juicio condicional, manipulación de documentos XML, etiquetas internacionales y etiquetas SQL. Además de estos, también proporciona un marco para usar etiquetas personalizadas integradas con JSTL.

Según las funciones proporcionadas por las etiquetas JSTL, se pueden dividir en 5 categorías.

Etiquetas principales Etiquetas de
formato Etiquetas
SQL Etiquetas
XML
Funciones
JSTL Instalación de la biblioteca JSTL

十 、 JavaScript

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_51135467/article/details/109393393
Recomendado
Clasificación