2010-10-31 5 views
3

Je souhaite utiliser l'objet HttpServletResponse de l'utilisateur pour composer une réponse qui indiquera au client de navigateur d'ouvrir une fenêtre contextuelle avec un message - comment puis-je faire cela?Servlets JAVA - popup de message ouvert

Répondre

9

Chaque réponse Servlet est essentiellement un doc/extrait Http. Vous pouvez donc renvoyer un appel à une fonction javascript qui sera exécutée côté client. La fonction peut être transmise dans cette réponse Servlet ou elle peut être pré-incluse dans le fichier .js.

juste un exemple:

//servlet code 
PrintWriter out = response.getWriter(); 
response.setContentType("text/html"); 
out.println("<script type=\"text/javascript\">"); 
out.println("alert('deadbeef');"); 
out.println("</script>"); 
+2

Il y a un problème - la page originale devient vide - je veux que le contenu de rester et le message juste pop up –

+0

Après avoir cliqué sur OK, il va à la page blanche, mais je veux rester dans cette page seulement Comment? Je l'essaie après le code ci-dessus 'resp.sendRedirect (" ./ index.jsp ");' mais ne pas devenir alerte –

1

Ajouter à HttpServletResponse un code Javascript qui va ouvrir une fenêtre contextuelle, quelque chose comme

<script type="text/javascript"> 
function popupWindow() { 
    window.open("someLinkToBePoppedUp") 
} 
</script> 
0

D'une manière générale, vous ne pouvez pas. En raison de leur popularité pour les publicités agaçantes, la plupart des navigateurs rejettent les tentatives d'ouvrir des fenêtres pop-up qui ne sont pas une réponse à quelque chose que l'utilisateur fait dans une page.

Si vous voulez simplement afficher la messagerie, vous pouvez simplement l'inclure dans une page ou en sortir un script element avec un alert statement.

1

Fondamentalement, vous ne pouvez pas le faire directement. Vous devez envoyer en réponse un code (probablement HTML et JS) qui instruira navigateur client pour afficher la fenêtre de message, par exemple

String someMessage = "Error !"; 
PrintWriter out = response.getWriter(); 
out.print("<html><head>"); 
out.print("<script type=\"text/javascript\">alert(" + someMessage + ");</script>"); 
out.print("</head><body></body></html>");