11
votes

Vérification de la valeur d'attribut de session de servlet dans le fichier JSP

J'ai une application Java sans cadre. Il se compose de fichiers JSP pour la vue et les servlets pour la logique commerciale. Je dois définir la session utilisateur est le servlet avec un paramètre prénom. Dans le fichier JSP, je dois vérifier si mon premier paramètre Nom a une valeur ou non. Si le paramètre Prénom est défini, j'ai besoin d'afficher certains HTML dans le fichier JSP. S'il n'est pas défini, j'ai besoin d'afficher différents HTML dans le fichier JSP.

servlet.java: p> xxx pré>

header.jsp: p>

// Between the <p> tags bellow I need to put some HTML with the following rules
// If firstName exist: Hello ${firstName} <a href="logout.jsp">Log out</a>
// Else: <a href="login.jsp">Login</a> or <a href="register.jsp">Register</a>

<p class="credentials" id="cr"></p>


0 commentaires

3 Réponses :


10
votes
<% if (session.getAttribute("firstName") == null) { %>
    <p> some content </p>
<% } else {%>
    <p> other content </p>
<% } %>

5 commentaires

Merci Ibrahim! Cette solution est propre et simple. C'est exactement ce que je voulais faire. Je jouais avec JSP el et c'était vraiment en désordre. :)


Désordonné? Apparemment tu as fait quelque chose de mal. Avec jstl / el c'est aussi simple que

Quelque contenu "$ { vide prénom} ">

Autre contenu . Je ne sais pas comment c'est plus désordonné.


@Ballusc je suis sûr! Je cherchais une construction si elle est construite à El et je ne pouvais pas le faire travailler, alors j'ai abandonné l'idée. En regardant votre exemple, cela ferait ce que je voulais aussi. J'utiliserai probablement celui-ci au lieu de mettre le code Java dans mon JSP. J'ai lu qu'il est préférable d'utiliser El / JStl que Java dans votre JSP. Merci pour ton aide!


Très mauvais...! L'utilisation de scriptslets est la pire idée.


Voir la réponse à partir de @menuka Ishan, utilisant JSSTL - Way to Go.



1
votes

dans le servlet, vous pouvez écrire comme suit xxx

the demande.getsession (true) renvoie une nouvelle session s'il n'existe pas de session sinon retournera la session en cours. Et, dans la page index.jsp que vous pouvez faire comme suit: xxx

ici, si le nom prénom est null Ensuite, firstpage.html sera inclus dans la page sinon secondpage.html .


2 commentaires

Merci Visruth! Excellente explication sur la greve (vrai).


Le request.getsession () fait exactement le même sous les couvertures. Voir aussi Le Javadoc . En fait, l'argument true est totalement superflu.



4
votes

Je pense que la meilleure façon de le faire est d'utiliser des balises JSTL. Parce que pour une application simple de JSP, une bonne idée peut être bonne idée d'ajouter tout le code Java à HTML mais plus d'applications plus lourdes Il est préférable d'utiliser le code Java minimum sur HTML. (Couche de vue séparée de la logique) (Lisez ceci pour plus https://stackoverflow.com/a/3180202/2940265 )
Pour votre attente, vous pouvez facilement utiliser le code comme ci-dessous xxx

si vous n'avez pas inclus JSTL correctement, vous ne pourrez pas obtenir la sortie attendue. Reportez-vous ceci pour un tel incident https://menukablog.wordpress.com/2016/05/10/add-jstl-tab-library-a-you-project-correctement/


0 commentaires