Bonjour,
Je vourdrais faire un forward vers une page JSP. (Servlet) --> (JSP)
est - il possible ?
Bonjour,
Je vourdrais faire un forward vers une page JSP. (Servlet) --> (JSP)
est - il possible ?
ben oui
getServletContext().getRequestDispatcher("/page.jsp").forward(request, response);
Dans ma Servlet LoginServlet, je test si le login de l'utilisateur est dans la BD. si ok je stock la session. sinon je forward vers la page login.jsp.
login.jsp
loginServlet.java
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
63
64
65
66
67
68
69 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>BD AGR</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <P> </P><P></P><P align="center"> <IMG src="../images/db_agr.jpg" alt="DB AGR" border="0" align="middle"> </P><FORM name="FrmLogin" action="/LoginServlet" method="post"> <P> </P><TABLE border="0" align="center"> <TR> <TD> <P align="left"> login </P></TD> <TD> <INPUT type="text" name="login" maxlength="15"> </TD> </TR> <TR> <TD> <P align="left"> Mot de Passe </P></TD> <TD> <INPUT type="password" name="passwd" maxlength="10"> </TD> </TR> <TR> <TD></TD> <TD> <P align="right"> <INPUT type="submit" name="Valider" value="Valider" ></P> </TD> </TR> </TABLE><P></P> <P> </P> <P> </P> <P> </P> </FORM> </body> </html>
web.xml
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151 package com.ge.health.em.agr.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import com.ge.health.em.agr.db.DBManager; public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; private static final Logger logger = Logger.getLogger(LoginServlet.class.getName()); /** * Constructor of the object. */ public LoginServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String login = request.getParameter("login"); String passwd = request.getParameter("passwd"); DBManager db=null; Connection ct=null; Statement st=null; ResultSet rs=null; String query=""; query = "select * from AGR_DEMANDEUR where NOM ='" + login +"'"; try{ db = DBManager.getInstance(); ct = db.getConnection(); st = ct.createStatement(); rs = st.executeQuery(query); while (rs.next()) { HttpSession session = request.getSession(true); session.setAttribute("login",login); if (!(login.equals (null)) && login.equals(rs.getString ("NOM")) && !(passwd.equals (null))){ System.out.println("ok"); System.out.println(rs.getString ("NOM")); getServletContext().getRequestDispatcher("/jsp/index_main.jsp").forward(request, response); //String newURL = "/jsp/agr_consult/agr_search.jsp"; //RequestDispatcher disp = request.getRequestDispatcher("/jsp/index_main.jsp"); //disp.forward(request, response); System.out.println("ok forward"); } else if (!(login.equals(rs.getString ("NOM")) && !(passwd.equals(null)))) { System.out.println("ko"); getServletContext().getRequestDispatcher("/jsp/login.jsp").forward(request, response); //RequestDispatcher disp = request.getRequestDispatcher("/login.jsp"); //disp.forward(request, response); } else { out.println("Compte Inconnu !!"); } } } catch (SQLException sqlEx){ logger.error("SQLException in table Agr_Demandeur LOGIN() : " + sqlEx); } catch (Exception e){ logger.error("Exception in table Agr_Demandeur LOGIN() : " + e); }finally{ try { rs.close(); rs = null; db.finalClose(st, ct); } catch (SQLException sqlEx) { logger.error("SQLException while closing ResultSet OR Connection in insertSQL() : " + sqlEx); } } } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occure */ public void init() throws ServletException { // Put your code here } }
d'où penses tu le probleme ??
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <distributable/> <servlet> <servlet-name>DAG_Read</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.DAG_Read</servlet-class> </servlet> <servlet> <servlet-name>User_Consult</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.User_Consult</servlet-class> </servlet> <servlet> <servlet-name>Doc_Template</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.Doc_Template</servlet-class> </servlet> <servlet> <servlet-name>Admin_Global</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.Admin_Global</servlet-class> </servlet> <servlet> <servlet-name>DAG_FileTransfer</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.DAG_FileTransfer</servlet-class> </servlet> <servlet> <servlet-name>Log4J_InitFromDB</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.Log4J_InitFromDB</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>DB_DuplicateAnAgr</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.DB_DuplicateAnAgr</servlet-class> </servlet> <servlet> <servlet-name>DB_ModifyAnAgr</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.DB_ModifyAnAgr</servlet-class> </servlet> <servlet> <servlet-name>DB_DeleteAnAgr</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.DB_DeleteAnAgr</servlet-class> </servlet> <servlet> <servlet-name>DB_MoveAnAgr</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.DB_MoveAnAgr</servlet-class> </servlet> <servlet> <servlet-name>DB_CreateAnAgr</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.DB_CreateAnAgr</servlet-class> </servlet> <servlet> <servlet-name>Export_Oracle2Excel</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.Export_Oracle2Excel</servlet-class> </servlet> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.ge.health.em.agr.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DAG_Read</servlet-name> <url-pattern>/DAG_Read</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>User_Consult</servlet-name> <url-pattern>/User_Consult</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Doc_Template</servlet-name> <url-pattern>/Doc_Template</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Admin_Global</servlet-name> <url-pattern>/Admin_Global</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DAG_FileTransfer</servlet-name> <url-pattern>/DAG_FileTransfer</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Log4J_InitFromDB</servlet-name> <url-pattern>/Log4J_InitFromDB</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DB_DuplicateAnAgr</servlet-name> <url-pattern>/DB_DuplicateAnAgr</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DB_ModifyAnAgr</servlet-name> <url-pattern>/DB_ModifyAnAgr</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DB_DeleteAnAgr</servlet-name> <url-pattern>/DB_DeleteAnAgr</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DB_MoveAnAgr</servlet-name> <url-pattern>/DB_MoveAnAgr</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DB_CreateAnAgr</servlet-name> <url-pattern>/DB_CreateAnAgr</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Export_Oracle2Excel</servlet-name> <url-pattern>/Export_Oracle2Excel</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/jsp/login.jsp</welcome-file> </welcome-file-list></web-app>
En resultat:
j'ai une page blanche, avec l'URL de ma servlet ds le browser.
c'est bisar,
pourquoi tu mets ton login en session et aprés tu testes s'il est bon..????
En plus ca doit plus tot être HttpSession session = request.getSession() ; et non pas HttpSession session = request.getSession(true) ;
ta mise en session je la ferait plutot une fois que je suis sur que le login est bon... nan? donc dans le if.. A moins que j 'ai mal compris ton code...
oui, tout à fait, il faut tester d'abord et apres faire la mise en session.
Mais ce n'est pas normal de ne pas avoir ma page jsp aprés ?
essaie juste de mettre "/index_main.jsp" dans ton request dispatcher...
Essaie de mettre plutot ton traitement dans la methode doGet()... Moi j'ai un code qui fait a peu pres le meme traitement et ca fonctionne... tiens voilà le code de la servlet si ca peut te servir:
fait pas gaffe a la gestion de la connexion c'est jste une servlet de test... C'est pas le must en codage niveau connexion..
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 package maServlet; import src.*; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.sql.*; /** * Servlet implementation class for Servlet: VerifConnectionSVR * */ public class VerifConnectionSVR extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#HttpServlet() */ public VerifConnectionSVR() { super(); } /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String identifiantCh = request.getParameter("identifiant"), motDePasseCh = request.getParameter("motDePasse"); String pathBd,loginBd, pwdBd; boolean isPresent = false; pathBd = getServletContext().getInitParameter("baseDeDonnees"); loginBd = getServletContext().getInitParameter("login"); pwdBd = getServletContext().getInitParameter("pwd"); try{ java.sql.Connection cnx = java.sql.DriverManager.getConnection(pathBd,loginBd,pwdBd); java.sql.Statement requete = cnx.createStatement(); java.sql.ResultSet rs = requete.executeQuery("SELECT * FROM client"); //Parcours du résultat int idClient=0; Client monClient = new Client(); while((rs.next())&&(!isPresent)) { //Login et mot de passe correspond a une entree dans la base de données if((identifiantCh.equals(rs.getString("nom")))&&(motDePasseCh.equals(rs.getString("motDePasse")))){ idClient = rs.getInt("refClient"); isPresent = true; monClient.chargeDepuisBase(rs); } } //On ferme la connexion a la base... rs.close(); requete.close(); cnx.close(); //Je met le client en session HttpSession session = request.getSession() ; session.setAttribute("leClient", monClient) ; System.out.println(((Client)session.getAttribute("leClient")).getNom()); //Je renvoie vers le menu if(isPresent) getServletContext().getRequestDispatcher("/listeMenu.jsp").forward(request,response); else getServletContext().getRequestDispatcher("/index.jsp").forward(request, response); }catch(SQLException e) { //probleme de connexion a la base, on revient sur la page d'acceuil... getServletContext().getRequestDispatcher("/index.jsp").forward(request, response); } } /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request,response); } }![]()
Partager