Quels sont les objets intégrés de JSP ? Quelles sont leurs fonctions ? Cet article mentionne les neuf objets intégrés de JSP, y compris une introduction détaillée à l'objet pageContext. L'objet pageContext est l'objet le plus important de la technologie JSP. Il représente l'environnement d'exécution de la page JSP. non seulement encapsule En plus des références aux huit autres objets implicites, il s'agit également d'un objet de domaine (conteneur) lui-même, qui peut être utilisé pour sauvegarder des données. D'autres objets peuvent également être obtenus via pageContext. L'utilisation spécifique est expliquée ci-dessous.
Lors du premier accès à chaque page JSP, le conteneur WEB transmettra la requête à la JSP moteur (c’est-à-dire un programme Java) à traiter. Le moteur JSP traduit d'abord le JSP en un _jspServlet (essentiellement un servlet), puis l'appelle selon la méthode d'appel du servlet.
Puisque JSP sera traduit en servlet lors du premier accès, le premier accès sera généralement plus lent, mais pour le deuxième accès, si le moteur JSP constate que le JSP n'a pas changé, il ne le traduira plus, mais appelez-le directement, donc l'efficacité d'exécution du programme ne sera pas affectée.
Lorsque le moteur JSP appelle le _jspServlet correspondant à JSP, il transmettra ou créera 9 objets liés au développement web pour que _jspServlet puisse les utiliser. Afin de faciliter aux développeurs l'obtention de références à ces objets Web lors de l'écriture de pages JSP, les concepteurs de la technologie JSP ont spécifiquement défini 9 variables correspondantes. Les développeurs peuvent rapidement obtenir des références à ces 9 objets dans les pages JSP via ces variables.
NON. | Objet intégré | Tapez | ||||||||||||||||||||||||||||||
1 |
|
javax.servlet.jsp.PageContext | tr>||||||||||||||||||||||||||||||
2 | requête | javax.servlet.http.HttpServletRequest | ||||||||||||||||||||||||||||||
3 | réponse | javax.servlet.http.HttpServletResponse td> | ||||||||||||||||||||||||||||||
4 | session | javax.servlet.http.HttpSession | 5 | application | javax.servlet.ServletContext | tr>|||||||||||||||||||||||||||
config | javax.servlet.ServletConfig | 7 | sortie | javax.servlet.jsp.JspWriter | ||||||||||||||||||||||||||||
8 | page | java.lang.Object|||||||||||||||||||||||||||||||
9 | exception | java.lang.Throwable td> |
Les objets tels que la requête, la réponse, la session, l'application et la configuration ont déjà été présentés en détail. Ici, nous nous concentrons sur les objets pageContext restants, les objets out et les objets page.
L'objet Page représente le JSP page , peut être comprise comme un objet lui-même, c'est-à-dire : traiter une JSP comme un objet. L'objet page est rarement utilisé en développement, comprenez-le simplement
3.2, objet out L'objet out est utilisé pour envoyer des données texte au client. L'objet out est renvoyé en appelant la méthode getOut de l'objet pageContext. Sa fonction et son utilisation sont très similaires à l'objet PrintWriter renvoyé par la méthode ServletResponse.getWriter.
Le type d'objet out dans la page JSP est JspWriter. JspWriter est équivalent à un PrintWriter avec fonction de mise en cache. La définition de l'attribut buffer de l'instruction page de la page JSP peut ajuster la taille de son cache ou même fermer son cache.
Ce n'est que lorsque le contenu est écrit dans l'objet out et que l'une des conditions suivantes est remplie que l'objet out appellera la méthode ServletResponse.getWriter et que le contenu dans le tampon de l'objet out sera réellement écrit via l'objet PrintWriter. renvoyé par cette méthode. Entrez le tampon fourni par le moteur Servlet :
3.3. Objet pageContext L'objet pageContext est l'objet le plus important de la technologie JSP. Il représente l'environnement d'exécution de la page JSP. huit autres objets implicites, mais aussi lui-même. C'est aussi un objet de domaine (conteneur) qui peut être utilisé pour sauvegarder des données. De plus, cet objet encapsule également certaines opérations courantes souvent impliquées dans le développement Web, telles que l'introduction et le passage à d'autres ressources, la récupération d'attributs dans d'autres objets de domaine, etc. 3.4. Obtenir d'autres objets via pageContext
java.lang.Object findAttribute(java.lang.String name)
Recherche l'attribut nommé dans la page, la requête, la session (si valide) et le(s) champ(s) d'application dans l'ordre et renvoie la valeur associée ou nulle
.
当要查找某个属性时,findAttribute方法按照查找顺序"page→request→session→application"在这四个对象中去查找,只要找到了就返回属性值,如果四个对象都没有找到要查找的属性,则返回一个null。
范例:使用pageContext的findAttribute方法查找属性值
pageContext的findAttribute方法查找属性值 pageContext.findAttribute方法查找到的属性值: pageContext对象的name1属性: request对象的name2属性: session对象的name3属性: application对象的name4属性: 查找不存在的name5属性: 使用EL表达式进行输出: pageContext对象的name1属性:${name1} request对象的name2属性:${name2} session对象的name3属性:${name3} application对象的name4属性:${name4} 不存在的name5属性:${name5}
运行结果:
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、 session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
pageContext对象中封装了访问其它域的方法
java.lang.Object getAttribute(java.lang.String name, setAttribute(java.lang.String name, java.lang.Object value, removeAttribute(java.lang.String name, scope)
代表各个域的常量
PageContext.PAGE_SCOPE
范例:pageContext访问其它域
pageContext访问其它域 取出存放在session对象中的属性值: 第一种做法:使用pageContext.getAttribute("attributeName",PageContext.SESSION_SCOPE);去取出session对象中值 姓名: 第二种做法:使用session.getAttribute("attributeName");去取出session对象中值 姓名:
PageContext类中定义了一个forward方法(用来跳转页面)和两个include方法(用来引入页面)来分别简化和替代RequestDispatcher.forward方法和include方法。
方法接收的资源如果以“/”开头, “/”代表当前web应用。
范例:使用pageContext的forward方法跳转到其他页面
使用pageContext的forward方法跳转页面
运行结果如下:
1 pageContext.forward("/pageContextDemo05.jsp");
这种写法是用来简化和替代pageContext.getRequest().getRequestDispatcher("/pageContextDemo05.jsp").forward(request, response);这种写法的。在实际开发中,使用pageContext.forward(relativeUrlPath)方法跳转页面用得不多,主要是因为要在Jsp页面中嵌套java代码,所以这种做法简单了解一下即可,在开发中,要想从一个Jsp页面采用服务器端跳转的方式跳转到另一个Jsp页面,那么一般会使用
范例:使用pageContext的include方法引入资源
使用pageContext的include方法引入资源
运行结果:
在实际开发中,使用pageContext的include方法引入页面这种做法也很少用,一般都使用jsp:include标签引入资源,因此这种做法了解一下即可。
相关推荐:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!