Сервлеты JAVA - открыть всплывающее сообщение - PullRequest
3 голосов
/ 31 октября 2010

Я хочу использовать объект HttpServletResponse для создания ответа, который скажет клиенту браузера открыть всплывающее окно с некоторым сообщением - как я могу это сделать?

Ответы [ 4 ]

9 голосов
/ 31 октября 2010

Каждый ответ сервлета - это, по сути, документ / фрагмент Http. Таким образом, вы можете вернуть вызов функции JavaScript, которая будет выполняться на стороне клиента. Эту функцию можно передать в ответе сервлета или предварительно включить в файл .js.

просто пример:

//servlet code
PrintWriter out = response.getWriter();  
response.setContentType("text/html");  
out.println("<script type=\"text/javascript\">");  
out.println("alert('deadbeef');");  
out.println("</script>");
1 голос
/ 31 октября 2010

По сути, вы не можете сделать это напрямую. Вы должны отправить в ответ некоторый код (возможно, HTML и JS), который будет указывать браузеру клиента показывать окно сообщения, например

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>");
1 голос
/ 31 октября 2010

Добавьте в HttpServletResponse некоторый код Javascript, который откроет всплывающее окно, что-то вроде

<script type="text/javascript">
function popupWindow() {
    window.open( "someLinkToBePoppedUp" )
}
</script>
0 голосов
/ 31 октября 2010

Вообще говоря, вы не можете.

Благодаря своей популярности раздражающей рекламы большинство браузеров отклоняют попытки открывать всплывающие окна, которые не являются реакцией на действия пользователя на странице.

Если вы просто хотите отобразить сообщение, вы можете просто включить его в страницу или вывести элемент сценария с оператором оповещения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...