Redirection d'une servlet vers une page jsp avec update de session
J'ai une page, index.jsp, qui redirige vers une servlet, URLReader, lorsque le client n'a pas de session :
Code:
1 2 3
| <c:if test="${sessionScope == null}">
<jsp:forward page="/DiveSchoolManagement/URLReader"/>
</c:if> |
J'ai donc, dans mon fichier web.xml, les lignes suivantes :
Code:
1 2
| <servlet-name>URLReader</servlet-name>
<servlet-class>src.URLReader</servlet-class> |
et
Code:
1 2
| <servlet-name>URLReader</servlet-name>
<url-pattern>URLReader</url-pattern> |
Edit : maintenant, ça fonctionne (dans le sens, "ça compile")... J'avais quelques erreurs de syntaxe dans mon fichier web.xml.
Problème suivant : la redirection.
J'ai donc un utilisateur sans session qui arrive sur la page d'index, celle-ci détecte (voir ci-dessus) le fait qu'il n'y a pas de session et renvoie vers la servlet "URLReader".
URLReader crée alors une session en y ajoutant une variable "isLogged" dont la valeur est false, ainsi qu'un menu (variable "userMenu"), sous forme de tableau de Strings.
URLReader effectue ensuite un forward sur la page d'index.
Dans la page d'index, j'ai le bout de code suivant :
Code:
1 2 3
| <c:forEach var="menuItem" items="${sessionScope.userMenu}" >
${menuItem}
</c:forEach> |
sensé m'afficher mon menu, et là ça cale... Ca n'affiche rien du tout.
En fait, j'ai l'impression qu'il n'y a tout simplement pas de session créée...
Voici ma classe URLReader :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class URLReader extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String ref = request.getParameter("ref");
HttpSession session = request.getSession(true);
if(session.getAttribute("isLogged").equals(null)) {
boolean isLogged = false;
session.setAttribute("isLogged", isLogged);
}
//Génération du menu suivant la variable de session isLogged
if(session.getAttribute("isLogged").equals(false)) {
String[] menu = {"Accueil", "A propos", "Club"};
session.setAttribute("userMenu",menu);
}
else {
String[] menu = {"Mon Menu", "Accueil", "A propos", "Club"};
session.setAttribute("userMenu",menu);
}
RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
dispatcher.forward(request, response);
}
} |