Maison  >  Article  >  interface Web  >  Résumé des méthodes de transfert de valeur entre les pages JSP

Résumé des méthodes de transfert de valeur entre les pages JSP

韦小宝
韦小宝original
2018-01-18 09:55:152119parcourir

La transmission de paramètres entre les pages JSP est une fonction souvent utilisée. Parfois, il est nécessaire de transmettre des paramètres entre plusieurs pages JSP. L'article suivant vous présente principalement les informations pertinentes sur la méthode de transmission des valeurs entre les pages JSP. Ce qui est introduit dans l'article est très détaillé et a une certaine valeur de référence et d'apprentissage pour tous les amis intéressés par JSP devraient le lire ensemble ci-dessous.

Préface

La transmission de paramètres entre les pages JSP est souvent requise dans les projets. Cela doit être considéré comme une compétence de base du Web. Essayez de résumer les différentes méthodes et, si nécessaire, vous pourrez peser le pour et le contre et choisir la méthode la plus appropriée. Jetons un coup d'œil à l'introduction détaillée :

1. L'ajout de paramètres après le lien URL

<a href="next.jsp?paramA=A&paramB=B..." rel="external nofollow" >URL 后面追加参数</a>

<jsp:include page="next.jsp"><jsp:param name="paramA" value="A"/></jsp:include> 

<jsp:forward page="next.jsp"><jsp:param name="paramA" value="B"/></jsp:forward> 

response.sendRedirect("next.jsp?paramA=A&paramB=B...")

window.location = "next.jsp?paramA=A&paramB=B..."

Lors de l'exécution des codes ci-dessus Will passez à la page next.jsp avec les paramètres.

La façon d'obtenir les paramètres correspondants dans la page next.jsp est la suivante :

//内嵌的 java 代码
<%String paramA = request.getParameter("paramA"); %>

//如果引入了 EL
{param.paramA}

Avantages : Simplicité et multi- prise en charge du navigateur (aucun navigateur ne prend en charge l'URL).

Inconvénients :

1) Les données transmises ne peuvent être que des chaînes, à la fois de type de données et de taille Certaines restrictions ;

2) La valeur des données transmises sera visible dans la barre d'adresse du navigateur et le niveau de sécurité est faible.

2. Formulaire

 <form action="next.jsp" method="post"> 
  <input type="text" name="paramA" value="A"> 
  <input type="hidden" name="paramB" value="B"> 
  <input type="submit" value="提交"> 
 </form>

La méthode d'obtention des paramètres correspondants dans la page next.jsp est similaire à (1).

Avantages :

1) Simplicité et prise en charge de plusieurs navigateurs (aucun navigateur ne prend également en charge le formulaire

2) Peut être soumis ; la quantité de données est bien plus importante que la méthode URL ;

3) La valeur transmise sera affichée dans la barre d'adresse du navigateur, mais avec un peu de piratage, la liste des paramètres peut également être construite à partir de la source de la page. code ;

Inconvénients :

1) Les données transmises ne peuvent être que des chaînes, et il existe certaines restrictions sur les types de données

3. Définir un Cookie

À l'aide des identifiants d'authentification du client, un petit cookie peut bien sûr également réaliser le transfert de valeur de la page JSP.

 <% 
  Cookie c=new Cookie("paramA","A"); 
  c.setMaxAge(60*60); //cookie 有效期1分钟
  response.addCookie(c); //将cookie 添加到 http响应中
  %>

Si vous souhaitez lire les cookies sur la page next.jsp, vous devez appeler la méthode request.getCookies() pour obtenir un javax.<a href="http://www.%20php.cn/wiki%20/1516.html" target="_blank">servlet<code>javax.<a href="http://www.php.cn/wiki/1516.html" target="_blank">servlet</a>.http.Cookie .http.Cookie tableau d'objets.

Parcourez ensuite ce tableau et utilisez la méthode getName() et la méthode getValue() pour obtenir le nom et la valeur de chaque cookie.

//内嵌的 java 代码
<%
 Cookie cookie = null;
 // 获取cookies的数据,是一个数组
 Cookie[] cookies = request.getCookies();
 if(cookies != null ){
  for (int i = 0; i < cookies.length; i++){
   cookie = cookies[i];
   out.print("参数名 : " + cookie.getName());
   out.print("<br>");
   out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>");
   out.print("------------------------------------<br>");
  }
 }else{
  out.println("<h2>没有发现 Cookie</h2>");
 }
%>

//EL 获取方式
${cookie.paramA.value}

Avantages :

1) La valeur du cookie peut être conservée même si la machine cliente est fermée, la valeur à l'intérieur peut toujours. être obtenu lors de sa prochaine ouverture. ;

2) Les cookies peuvent aider le serveur à enregistrer plusieurs informations d'état, mais n'exigent pas que le serveur alloue spécifiquement des ressources de stockage, ce qui réduit la charge sur le serveur.

Inconvénients :

1) Bien que la sécurité soit bien améliorée par rapport à l'URL et au formulaire, il existe également des moyens noirs d'obtenir les cookies des clients et d'exposer les informations des clients.

4. Paramètres Session

Personnellement, je pense que la session et le cookie sont côté serveur et côté client. côté.

Après leur avoir ajouté des paires clé-valeur, il assure non seulement le transfert entre les pages, mais constitue en fait une solution de partage de données.

 <%  
 session.setAttribute("paramA","A"); 
 response.sendRedirect("next.jsp"); 
 %>

Comment lire la session dans next.jsp :

//内嵌java 片段
<%=session.getAttribute("paramA") %>

//EL 获取方式
{session.paramA}

Les avantages et les inconvénients de Session peuvent être référés à Cookie.

Ce qui précède représente tout le contenu de cet article, j'espère qu'il pourra aider tout le monde à apprendre ! !

Recommandations associées :

Explication détaillée de la façon d'accéder directement à la page JSP dans le répertoire WEB-INF

Comment accéder à une nouvelle méthode d'implémentation ajax de la page jsp

Méthode de chaîne d'exploitation d'expression EL d'étiquette de fonction fournie par JSTL dans JSP

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn