Je javascript qui appelle une fonction pour définir la valeur de la session commewindow.location.reload (true) effacera HttpSession?
ci-dessous est le code client:
<a id="sampleId "href="javascript:confirmTechSimulationSwitch('testLink');
function confirmTechSimulationSwitch(){
var url = window.location.protocol + "//" + window.location.host + "/dummy-proj/Toggle.jsp";
var xmlHttpReq = new XMLHttpRequest();
if (window.XMLHttpRequest) {
xmlHttpReq = new XMLHttpRequest();
xmlHttpReq.open("POST",url, false);
xmlHttpReq.send(null);
}
if (xmlHttpReq.readyState == 4) {
if (xmlHttpReq.status == 200){
var newResponse =xmlHttpReq.responseText.slice(0,4);
if(xmlHttpReq.responseText !=null && newResponse =='true'){
window.location.reload(true);
}
}
}
Dans ce Toggle.jsp j'ai un methood:
<%
System.out.println("inside jsp page");
session.setAttribute("abc","true");
request.setAttribute("abc","true");
request.getSession().setAttribute("abc","true");
System.out.println(" abc123........ "+session.getAttribute("abc"));//prints true
System.out.println("abc456....... "+request.getAttribute("abc"));//prints true
System.out.println("abc789......."+request.getSession().getAttribute("abc"));//prints true
}
%>
maintenant j'essaye d'aller chercher les valeurs de cette session après le rechargement de page de la même application dans la méthode différente comme ci-dessous:
public void Test(HttpServletRequest request){
HttpSession session = request.getSession();
session.getAttribute("abc");// prints null
request.getAttribute("abc");//prints null
request.getSession().getAttribute("abc")//prints null
}
à partir d'une autre méthode java Test. Je l'obtiens comme nul. quelqu'un peut me suggérer s'il vous plaît comment obtenir la valeur de session qui est définie pour abc même après rechargement de la page?
Afficher le code côté client. Si vous rechargez la page, la demande en vol du gestionnaire de clics peut être annulée par le navigateur. Ne rechargez pas avant que cette demande (et son travail de session) est terminée. Aussi, qu'est-ce qu'un "autre programme java"? Ne fait pas partie de la même application web (alors il n'aura pas accès à la session)? – Thilo
J'ai ajouté le code côté client, regardez –
vérifiez que 'trainingAvailableFlag' vérifie s'il s'agit de' true' ou '1'. Ajoutez simplement un autre cas dans la réponse ajax et vérifiez la réponse. – Santhucool