30/10/2020

Java Web Review Day1

JavaWeb

1. Le rôle de Servlet:

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

Principe du servlet
Lorsque le navigateur accède à la ressource correspondante dans le conteneur Web, la ressource correspondante transmet les informations correspondantes en fonction des deux paramètres de demande et de réponse, puis passe à la méthode de service dans le servlet, et la traite selon la classe écrite par nous-mêmes La demande correspondante renverra éventuellement les informations.
La cartographie
peut comprendre cela comme une cartographie. Dans notre fichier de configuration web.xml, le servlet est configuré avec la classe de traitement que nous avons écrite nous-mêmes, et le chemin de l'url lorsque nous visitons est configuré dans servlet-mapping.
ServletContext La
classe ServletContext est comme un gros conteneur, qui peut être utilisé pour stocker les données dans chaque servlet. Nous avons seulement besoin d'utiliser .setAttribute ("xx", xx) pour placer manuellement les données de notre Servlet dans ce grand conteneur.
Redirection et transfert de demande (accentuation)
Redirection:
Request forwarding:
La différence entre .forward () :
1. La redirection modifie l'URL de l'adresse, la barre d'adresse de transfert reste inchangée
2. La redirection peut accéder aux ressources externes et la redirection ne peut accéder qu'aux ressources internes
3. La redirection est un saut côté client Transfert, transfert vers le serveur jump
4. La redirection consiste en deux requêtes, et le transfert est une demande
de transfert. Lorsque A demande les ressources de C, mais A ne peut pas y accéder directement, mais B peut y accéder, nous visitons donc B vers C'est pour réaliser la
redirection de l'accès de A à C.Lorsque A a besoin d'accéder à une certaine ressource, il visite d'abord B, mais B n'a pas de ressource correspondante, mais B dit à A que A devrait visiter A, alors il va à A puis visite C. Puis obtenu les ressources correspondantes

Deux, quatre plages d'attributs (portée):

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

Page:
Enregistrer les attributs uniquement sur une seule page, invalide après le saut Repuest: Enregistrer les attributs uniquement dans une requête, le serveur a toujours
Session: Enregistrer dans la portée d'une session, quel que soit le type de saut utilisé, mais nouveau Impossible d'utiliser l'
application lors de l' ouverture du navigateur : enregistré sur l'ensemble du serveur, tous les utilisateurs peuvent l'utiliser.

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

Trois, méthode de saut de page

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

Quatre, session session:

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

Cinq, les neuf objets intégrés de JSP:

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

9 objets
intégrés : pageContext demande de réponse session application config out page exception
Plusieurs fonctions importantes de l'objet:
objet pageContext : représente le texte suivant d'une page JSP.
objet de demande : reçoit les informations de demande envoyées par le client.
Objet de réponse : répondez à la demande du client et renvoyez le résultat traité par le serveur Web au client.
Objet de session : connexion complète de l'utilisateur, déconnexion, etc.
Objet Application : utilisé pour stocker et récupérer des informations qui peuvent être partagées entre tous les utilisateurs
Objet de configuration : récupérer, ces informations de configuration initialisées.
Objet de sortie : pour terminer l'opération de sortie de la page, utilisez la méthode printin () ou print () pour sortir les informations.

Six, syntaxe JSP:

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

Sept, instructions JSP:

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

8. L'objet implicite de l'expression 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 }

Nine, bibliothèque de balises

Bibliothèque de balises standard JSP (JSTL) La
bibliothèque de balises standard JSP (JSTL) est une collection de balises JSP qui encapsule les fonctions de base communes des applications JSP.

JSTL prend en charge les tâches générales et structurées, telles que l'itération, le jugement conditionnel, la manipulation de documents XML, les balises internationales et les balises SQL. En plus de ceux-ci, il fournit également un cadre pour utiliser des balises personnalisées intégrées à JSTL.

Selon les fonctions fournies par les balises JSTL, elles peuvent être divisées en 5 catégories.

Balises principales Balises de
format Balises
SQL Balises
XML
Fonctions
JSTL Installation de la bibliothèque JSTL

十 、 JavaScript

Insérez la description de l'image ici
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/m0_51135467/article/details/109393393
conseillé
Classement