2015-12-16 1 views
0

Servlet5 et servlet6 reçoivent des requêtes individuelles de pages html individuelles, AllItems.java est la dernière servlet, qui ne montre pas tous les attributs de session de servlet5 pourquoi ??.les valeurs de session de request1 ne sont pas disponibles, tout en générant une réponse dans le servlet final

c'est la page d'accueil de cette demande et la demande va d'ici à servlet5.java

HttpSessionTechniquesMain.html 
 
]<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset="ISO-8859-1"> 
 
<title>Cookie mechanism</title> 
 
</head> 
 
<body> 
 
\t <form action="Servlet5" method="post"> 
 
\t Enter rollno<input type="text" name ="rn"> <br> 
 
\t Enter name<input type="text" name="nm"><br> 
 
\t <input type="submit" value="send rn and nm to servlet5"> \t 
 
\t </form> 
 
</body> 
 
</html>

Servlet5.java ajoute deux attributs de page html à sesssion

package com.sessionhandling.httpsessionmechanism; 
public class Servlet5 extends HttpServlet { 
private static final long serialVersionUID = 1L;` 
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
String num = request.getParameter("no"); 
String name = request.getParameter("name"); 
HttpSession session = request.getSession(); 
response.setContentType("text/html"); 
PrintWriter writer = response.getWriter(); 
session.setAttribute("num", num); 
session.setAttribute("name", name); 

int maxInactiveInterval = session.getMaxInactiveInterval(); 
writer.println("session expire time" + maxInactiveInterval + " session id " + session.getId()); 
session.setMaxInactiveInterval(10); 
writer.println("<a href='SendMoreValues.html'>Click here to add more values to cart</a>"); 
writer.close(); 
} 

}

Envoi d'une nouvelle demande de SendMoreValues.html à Servlet6.java

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset="ISO-8859-1"> 
 
<title>Insert title here</title> 
 
</head> 
 
<body> 
 
\t <form action="Servlet6" method="post"> 
 
\t Enter email<input type="text" name ="eml"> <br> 
 
\t Enter pswd<input type="text" name="pw"><br> 
 
\t <input type="submit" value="send eml and pwd to servlet6"> \t 
 
\t </form> 
 

 
</body> 
 
</html>

Servlet6.java 
public class Servlet6 extends HttpServlet { 
private static final long serialVersionUID = 1L; 
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
String email = request.getParameter("eml"); 
String pswd = request.getParameter("pw"); 
HttpSession session = request.getSession(true); 
session.setAttribute("email", email); 
session.setAttribute("password", pswd); 
session.setAttribute("password", "password value is overrided by other request"); 
response.setContentType("text/html"); 
PrintWriter writer = response.getWriter(); 
int maxInactiveInterval = session.getMaxInactiveInterval(); 
writer.println("session timout time"+maxInactiveInterval+" sesssion id"+ session.getId()); 
writer.println("<a href='AllItems'>Click here to display all cart values from Allitems servlet</a>"); 
writer.close(); 
} 
} 

Ce dernier servlet lit toutes les valeurs des attributs qui sont ajoutés à servlet5 et servlet6, mais les attributs ne sont pas servlet5 affiché ou récupéré ... pourquoi ??

public class AllItems extends HttpServlet { 
private static final long serialVersionUID = 1L; 
private PrintWriter writer; 
@Override 
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
try { 

    HttpSession session = request.getSession(false); 
    response.setContentType("text/html"); 
    writer = response.getWriter(); 
    Enumeration<String> names = session.getAttributeNames(); 
    while (names.hasMoreElements()) { 
    String string = names.nextElement(); 
    writer.println(string + " : " + session.getAttribute(string).toString()); 
    } 

    writer.close(); 
} catch (Exception e) { 
    writer.print(" old session object not found... "); 
    HttpSession session = request.getSession(true); 
    response.setContentType("text/html"); 
    writer = response.getWriter(); 
    Enumeration<String> names = session.getAttributeNames(); 
    while (names.hasMoreElements()) { 
    String string = names.nextElement(); 
    writer.println(string + " : " + session.getAttribute(string).toString()); 
    } 

} 
} 
} 
+0

Lorsque cette servlet '' est de AllItems s'appelle? – Babel

+0

à la fin, après avoir envoyé une requête au servlet 5 et au servlet 6 à partir de pages html individuelles. La requête de servlet allitems est envoyée par le servlet6 – Vinay

+0

L'application s'exécute correctement, mais les valeurs de l'attribut servlet5 ne sont pas répertoriées, tout en l'extrayant dans tous les éléments – Vinay

Répondre

0

Les noms des paramètres de type d'entrée où mal positionnée, fait ce droit, il a travaillé

HttpSessionTechniquesMain.html 
 
]<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset="ISO-8859-1"> 
 
<title>Cookie mechanism</title> 
 
</head> 
 
<body> 
 
\t <form action="Servlet5" method="post"> 
 
\t Enter rollno<input type="text" name ="no"> <br> 
 
\t Enter name<input type="text" name="name"><br> 
 
\t <input type="submit" value="send rn and nm to servlet5"> \t 
 
\t </form> 
 
</body> 
 
</html>