Tu utilises Eclipse ?
Si oui, dans le source du filtre, tu as une bande sur la gauche, tu double-clique sur la ligne voulue pour positionner le point d'arrêt.
Si tu as mis tes pages dans un répertoire pages, peux-tu également montrer le web.xml ?
Tu utilises Eclipse ?
Si oui, dans le source du filtre, tu as une bande sur la gauche, tu double-clique sur la ligne voulue pour positionner le point d'arrêt.
Si tu as mis tes pages dans un répertoire pages, peux-tu également montrer le web.xml ?
En fait je travail sous MyEclipse5.5 pour facilter .
A signaler que j'ai mis le repertoir /pages directement sous le dossier WEB-INF.
Voila mon web.xml :
Ce que je pense c'est que dans le forword je dois mettre un truc du genre /page/success.jsp au lieu de /Success..jsp .
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <filter> <filter-name>ServletFilter</filter-name> <filter-class>iam.hiebrnate.ServletFilter</filter-class> </filter> <filter-mapping> <filter-name>ServletFilter</filter-name> <url-pattern>/pages/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
Non, mets-le au directement sous WebContent (au même niveau que WEB-INF)
Bizzare maintenant il me dit que userLogin.jsp n'est pas disponible .
En reflechissant ,je crois que je dois modifier les liens qui mènent aux pages cibles .
Dans le forwording par exemple je dois mettre /page/success.jsp .
Maintenant le dossier /pages et au meme niveau que le WEb-INF et sous le WEBRoot .
Peux-tu montrer struts-config.xml ?
Bon le fichier est un peu long je vous montre la partie concernant l'action login :
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <data-sources/> <form-beans > <form-bean name="userLoginForm" type="com.iam.struts.form.UserLoginForm" /> <form-bean name="capexetdForm" type="com.iam.struts.form.CapexetdForm" /> <form-bean name="consultation1Form" type="com.iam.struts.form.Consultation1Form" /> <form-bean name="modification1Form" type="com.iam.struts.form.Modification1Form" /> <form-bean name="consulatation2Form" type="com.iam.struts.form.Consulatation2Form" /> <form-bean name="consultation3Form" type="com.iam.struts.form.Consultation3Form" /> <form-bean name="consultation4Form" type="com.iam.struts.form.Consultation4Form" /> <form-bean name="modification2Form" type="com.iam.struts.form.Modification2Form" /> <form-bean name="modification3Form" type="com.iam.struts.form.Modification3Form" /> <form-bean name="modification4Form" type="com.iam.struts.form.Modification4Form" /> <form-bean name="consultation5Form" type="com.iam.struts.form.Consultation5Form" /> <form-bean name="consultation6Form" type="com.iam.struts.form.Consultation6Form" /> <form-bean name="consultation7Form" type="com.iam.struts.form.Consultation7Form" /> <form-bean name="modification5Form" type="com.iam.struts.form.Modification5Form" /> <form-bean name="modification6Form" type="com.iam.struts.form.Modification6Form" /> <form-bean name="chargeForm" type="com.iam.struts.form.ChargeForm" /> <form-bean name="charge1Form" type="com.iam.struts.form.Charge1Form" /> <form-bean name="addingForm" type="com.iam.struts.form.AddingForm" /> <form-bean name="rootingForm" type="com.iam.struts.form.RootingForm" /> <form-bean name="rooteForm" type="com.iam.struts.form.RooteForm" /> <form-bean name="deleteForm" type="com.iam.struts.form.DeleteForm" /> <form-bean name="modifyForm" type="com.iam.struts.form.ModifyForm" /> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings > <action attribute="userLoginForm" input="/userLogin.jsp" name="userLoginForm" path="/userLogin" scope="request" type="com.iam.struts.action.UserLoginAction"> <forward name="success2" path="/Success2.jsp" /> <forward name="mem" path="/userLogin.jsp" /> <forward name="success1" path="/Success1.jsp" /> <forward name="success3" path="/admin.jsp" /> <forward name="failiure" path="/userLogin.jsp" /> <forward name="success" path="/success.jsp" /> </action>
userLogin.jsp est sous WebRoot ?
Ta page se nomme userLogin.jsp ou userlogin.jsp ?
(c'est une erreur de copie ?)
Difficile de t'aider avec que des fragments...
As-tu moyen de mettre tout le projet dans un zip et le mettre en ligne ?
Je viens d'uploder le projet sur ce lien,mais just à titre consultatif, car vous ne pourriez pas l'excuter vu qu'il y a une BD dérrière notamment pour le cas du login qui necessite une table user .
link :
http://www.sendspace.com/file/lkajrnmz
A ben c'est sûr qu'on aurait pu tourner en rond longtemps, le code que tu montres n'est pas celui que tu exécutes !
Ta classe ServletFilter n'était pas conforme, ci-dessous la version modifiée (en rouge, ce qui est impératif)
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 package iam.hiebrnate; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class ServletFilter implements Filter { @Override public void init(FilterConfig arg0) throws ServletException { } @Override public void destroy() { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; HttpSession session = null; try { String uri = httpRequest.getRequestURI(); session = httpRequest.getSession(false); if (uri.indexOf(httpRequest.getContextPath() + "/userLogin.do") == -1) { if (session == null || session.getAttribute("AUTHENTIFICATION") == null) { resp.sendRedirect("/userLogin.jsp"); } else chain.doFilter(request, response); } else { // C'est la demande de login, il faut poursuivre chain.doFilter(request, response); } } catch (Exception e) { throw new ServletException(e); } } }
AH non, le truc c'est qu'après avoir eu des problèmes avec mon code j'ai apporter quelques modifications histoire d'essayer et de tâtonner c'est le signe un peu du désespoir .A ben c'est sûr qu'on aurait pu tourner en rond longtemps, le code que tu montres n'est pas celui que tu exécutes !
Et j'ai oublié de remettre l'ancien code quand j'ai mis le dossier en ligne.
Bon après rectification je me suis tenu au code que tu viens de me poster :
1 er remarque :
Je ne sais pas c'est quoi ce
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part @Override
En tout cas il me génére une erreur et j'ai du le retirer du code .
L'erreur :
2ème remarque :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 The method init(FilterConfig) of type ServletFilter must override a superclass method
J'accède maintenant à tout mes pages et j'ai plus l'ancien problème .
Le truc nouveau c'est que j'ai plusieurs statuts d'utilisateurs: le parcoure que j’avais prévu pour un comptable peux déviée et accéder aux pages de l’administrateur, je crois que je dois essayer plusieurs objets AUTEHNTIFCATION pour gérer tout les privilèges des utilisateurs.
Un grand merci à toi OButterlin , là les choses sont plus claires maintenant pour moi .
L'annotation @Override permet de marquer la méthode comme étant dérivée d'une super classe (et si ce n'est pas le cas, le compilateur doit envoyer une erreur), mais il faut avoir une version 5 de java (ou plus).
Pour l'autre problème, "AUTHENTIFICATION" ne représente qu'un nom en session sous lequel tu enregistres un objet. Rien ne t'empêche de mettre une Map ou une List sous ce nom...
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager