J'ai une page, index.jsp, qui redirige vers une servlet, URLReader, lorsque le client n'a pas de session :
J'ai donc, dans mon fichier web.xml, les lignes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <c:if test="${sessionScope == null}"> <jsp:forward page="/DiveSchoolManagement/URLReader"/> </c:if>
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <servlet-name>URLReader</servlet-name> <servlet-class>src.URLReader</servlet-class>Edit : maintenant, ça fonctionne (dans le sens, "ça compile")... J'avais quelques erreurs de syntaxe dans mon fichier web.xml.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <servlet-name>URLReader</servlet-name> <url-pattern>URLReader</url-pattern>
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 :
sensé m'afficher mon menu, et là ça cale... Ca n'affiche rien du tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <c:forEach var="menuItem" items="${sessionScope.userMenu}" > ${menuItem} </c:forEach>
En fait, j'ai l'impression qu'il n'y a tout simplement pas de session créée...
Voici ma classe URLReader :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
Partager