J'ai récemment terminé d'étudier le composant WebPart et j'ai découvert que certaines parties sont toujours faciles à comprendre individuellement, mais lorsque vous les rassemblez toutes, il y a toujours quelques points de connaissance qui se confondent facilement. En fait, il y a suffisamment d'informations sur Internet, même si les porteurs qui travaillent dur ne manquent pas. Mais le but ultime n’est-il pas simplement de nous comprendre nous-mêmes ? Seul ce que nous comprenons est vraiment le nôtre. En prime, concentrons-nous d’abord sur les neuf objets implicites de JSP.
Vous pouvez jeter un œil aux neuf objets implicites de JSP dans l'image ci-dessous. Ils sont toujours considérés comme les points clés par les enseignants.
Portée ------ Comme son nom l'indique, la gamme de tailles qui fonctionne l'est également ! Si vous apprenez un point de connaissance par vous-même, quels objectifs devez-vous atteindre pour être considéré comme comprenant, comprenant et maîtrisant un point de connaissance ? De l'observation, de l'audition et du questionnement du Dr Bian, jusqu'à l'ajout, la suppression, la modification et la recherche dans la base de données, tout commence par la même question : Qu'est-ce que c'est ? A quoi ça sert ? Comment l'utiliser ? Pourquoi peut-il être utilisé ainsi ? Par conséquent, je pense que nous devrions saisir les questions suivantes, étudier ces questions et découvrir nos propres lacunes, ce qui est la meilleure façon d'apprendre.
1) La taille réelle de la lunette. (Qu'est-ce que c'est ?)
2) Le rôle du périmètre. (A quoi ça sert ?)
3) Comment utiliser ces oscilloscopes. (Comment l'utiliser ?)
4) Il utilise le principe de mise en œuvre comme celui-ci. (Pourquoi peut-on l'utiliser de cette manière ?)
Commençons à analyser un par un :
1) Portée réelle taille. (Qu'est-ce que c'est ?)
La portée du domaine servletcontext est : l'ensemble de l'application Web.
Une fois les données générées, elles seront non seulement utilisées plus tard, mais également utilisées par d'autres, veuillez utiliser servletcontext.
C'est le plus grand domaine parmi les quatre domaines.
2) Le rôle du périmètre. (A quoi ça sert ? )
Étant donné que toutes les servlets d'une application Web partagent le même objet servletcontext, plusieurs servlets réalisent le transfert de données entre différentes servlets via l'objet servletcontext de partage.
3) Comment utiliser ces oscilloscopes. (Comment utiliser ?)
a) peut être lié via la programmation, ou en tant que variable globale dans une application Web Accès à tous les servlets et JSP
设置Context属性: ServletContext application=this.getServletContext(); application.setAttribute("person1",new Person("Jim")); application.setAttribute("person2",new Person("Green")); 获取Context属性: ServletContext application=this.getServletContext(); Enumberation persons=application.getAttributeNames(); while(persons.hasMoreElements()){ String name=(String)persons.nextElement(); Person p=(Person)persons.getAttribute(name); application.removeAttribute(name); }
b) Configurez le domaine de contexte pour l'ensemble de l'application Web :
Modifiez le fichier de configuration web.xml et ajoutez le contenu suivant
Accédez à ces paramètres d'initialisation depuis le Servlet :
ServletContext application=this.getServletContext();
out.println(application.getInitParameter("data"));
c) Lire le fichier de ressources
Utilisez l'interface ServletContext pour accéder directement à la structure du document de contenu statique dans l'application Web, y compris les fichiers HTML, GIF et JPEG. Comme les méthodes suivantes :
.getResource()
.getResourceAsStream()
Les paramètres de ces deux méthodes sont des chaînes commençant par "/", indiquant que la ressource est relative à la racine du contexte Le chemin relatif. La structure du document peut exister dans le système de fichiers du serveur , ou dans le package war, ou sur un serveur distant, ou à d'autres emplacements. Elle ne peut pas être utilisée pour obtenir des ressources dynamiques, telles que getResource("/index.jsp"). Cette méthode renverra le code source du fichier jsp, pas la page dynamique. Vous pouvez utiliser "Dispatching Requests" pour obtenir du contenu dynamique. Répertorier les applications Web Pour les ressources accessibles, vous pouvez utiliser la méthode getResourcePaths(String path).
(Pourquoi peut-il être utilisé de cette manière ?)
Le servlet n'est pas adapté à la sortie de données, les données doivent donc être transmises au fichier JSP pour être embellies, puis sorties vers le fichier JSP. client.
JSP peut embarquer du code Java, ce qui lui permet de recevoir des données Java. Dans le même temps, étant donné que le domaine servletcontext permet à l'ensemble de l'application Web de partager les données, le problème de « threadsecurity
» affecte également les données transférées, le domaine de requête doit donc être utilisé.(2) Domaine Httpsession (domaine de session)
La portée de Httpsession est : une session.
Une fois les données générées, elles sont affichées à l'utilisateur Si elles doivent être utilisées ultérieurement, utilisez le champ Httpsession.
它是四个域中范围第二大的域。
2) 作用域的作用。(有什么用?)
(会话范围)在第一次调用request.getSession()方法时,服务器会检查是否已经有对应的session。如果没有,就在内存中创建一个session并返回。当一短时间内(默认30分钟)session没有被使用,则服务器会销毁该session。若服务器非正常关闭,未到期的session也会跟着销毁。若调用session提供的invalidate()方法,可以立即销毁session。
3)怎么使用这些作用域。(怎么用?)
a) jsp中操作session (String)request.getSession().getAttribute("username"); // 获取 request.getSession().setAttribute("username", "xxx"); // 设置 b) java中操作session //servlet中 request.getSession(); session.getAttribute("username"); session.setAttribute("username", "xxx"); session.setMaxInactiveInterval(30*60); session.invalidate(); //struts中方法1 ServletActionContext.getRequest().getSession().setAttribute("username", "xxx"); ServletActionContext.getRequest().getSession().getAttribute("username"); ServletActionContext.getRequest().getSession().setMaxInactiveInterval(30*60); ServletActionContext.getRequest().getSession().invalidate(); //struts中方法2 ActionContext.getContext().getSession().put("username", "xxx"); ActionContext.getContext().getSession().get("username"); ActionContext.getContext().getSession().clear(); c) web.xml中操作session <session-config> <session-timeout>30</session-timeout> </session-config> d) tomcat-->conf-->conf/web.xml <session-config> <session-timeout>30</session-timeout> </session-config>
4)它这样使用实现的原理。(为什么可以这么用?)
HttpSession在服务器中,为浏览器创建独一无二的内存空间,在其中保存了会话相关的信息。服务器创建session出来后,会把session的id号,以cookie的形式回写给客户机,这样,只要客户机的浏览器不关,再去访问服务器时,都 会带着session的id号去,服务器发现客户机浏览器带session id过来了,就会使用内存中与之对应的session为之服务。如果要问我为什么,我也不知道啊!
1)作用域的实际大小。(是什么?)
ServletRequset域是:整个请求链(请求转发也存在)。
数据产生之后,只需要使用一次,这种情况下请使用ServletRequset域。
C'est le troisième plus grand domaine parmi les quatre domaines.
2) Le rôle du périmètre. (A quoi ça sert ?)
Partagez les données tout au long de la chaîne de requête.
Le plus couramment utilisé : les données traitées dans le servlet sont transmises à JSP pour affichage. A ce moment, les paramètres peuvent être placés dans le Champ ServletRequset et. amené.
3) Comment utiliser ces oscilloscopes. (Comment utiliser ?)
a) Méthode pour obtenir les informations du client
La méthode getRequestURL renvoie l'URL complète lorsque le client fait une requête.
La méthode getRequestURI renvoie la partie nom de la ressource de la ligne de requête.
La méthode getQueryString renvoie la partie paramètre dans la ligne de requête.
La méthode getRemoteAddr renvoie l'adresse IP du client qui a fait la demande
La méthode getRemoteHost renvoie le nom d'hôte complet du client qui a fait la demande
La méthode getRemotePort renvoie le numéro de port réseau utilisé par le client
La méthode getLocalAddr renvoie WEB L'adresse IP du serveur.
GetLocalName méthode renvoie le nom d'hôte du serveur WEB
getMethod récupère la méthode de requête client
b) Récupère l'en-tête de requête client
getHead Méthode er(string name)
méthode getHeaders(String name)
méthode getHeaderNames
c) Récupérer le client paramètres de requête (données soumises par le client)
getParameter(name) method
méthode getParameterValues(String name)
méthode getParameterNames
méthode getParameterMap
4) Il utilise le principe d'implémentation comme celui-ci. (Pourquoi peut-il être utilisé de cette manière ?)
Créé par le serveur avant l'appel de la méthode de service et transmis à la méthode de service. La requête entière se termine et la durée de vie de la requête se termine.
1)作用域的实际大小。(是什么?)
PageContext域的作用范围是:整个JSP页面。
它是四个域中范围最小的一个域。
2) 作用域的作用。(有什么用?)
a) 它可以获取其它八大隐式对象,可以认为它是一个入口对象。
b) 获取其它所有域中的数据。
c) 跳转到其它资源。其身上提供了forword和sendRedirect方法,简化了转发和重定向的操作。
3)怎么使用这些作用域。(怎么用?)
以下以一个简单的JSP页面程序为例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>pageContext对象_例1</title></head><body><br><%//使用pageContext设置属性,该属性默认在page范围内 pageContext.setAttribute("name","地球"); request.setAttribute("name","太阳系"); session.setAttribute("name","银河系");//session.putValue("name","麦哲伦系"); application.setAttribute("name","宇宙");%>page设定的值:<%=pageContext.getAttribute("name")%><br>request设定的值:<%=pageContext.getRequest().getAttribute("name")%><br>session设定的值:<%=pageContext.getSession().getAttribute("name")%><br>application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>范围1内的值:<%=pageContext.getAttribute("name",1)%><br>范围2内的值:<%=pageContext.getAttribute("name",2)%><br>范围3内的值:<%=pageContext.getAttribute("name",3)%><br>范围4内的值:<%=pageContext.getAttribute("name",4)%><br><!--从最小的范围page开始,然后是reques、session以及application--><%pageContext.removeAttribute("name",3);%>pageContext修改后的session设定的值:<%=session.getValue("name")%><br><%pageContext.setAttribute("name","宇宙",4);%>pageContext修改后的application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>值的查找:<%=pageContext.findAttribute("name")%><br>属性name的范围:<%=pageContext.getAttributesScope("name")%><br></body></html>
显示结果:
page设定的值:地球 request设定的值:太阳系 session设定的值:银河系 application设定的值:宇宙 范围1内的值:地球 范围2内的值:太阳系 范围3内的值:银河系 范围4内的值:宇宙 pageContext修改后的session设定的值:nullpageContext修改后的application设定的值:宇宙 值的查找:地球 属性name的范围:1
4)它这样使用实现的原理。(为什么可以这么用?)
Objet pageContext, cet objet représente le contexte de la page. Cet objet est principalement utilisé pour accéder aux données partagées entre les JSP. Démarré lorsqu'une requête est adressée au JSP et détruit à la fin de la réponse.
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!