請求Servlet完成后,如何在jsp中彈出想要的彈窗呢?
我在選課系統中遇到了這個問題,我需要在點擊選課按鈕后彈出選課成功或已經選過這門課了,其中的選課按鈕是一個鏈接到Servlet的超鏈接。我的寫法是在Servlet中利用session將響應值傳到jsp中,在通過JavaScript彈出alert框。
原理:利用session把Servlet的響應值傳給jsp,jsp中接受session值並做出判斷,JavaScript彈出alert。
代碼示例:
Servlet中:
HttpSession session = request.getSession();//創建session變量 String message = null; //定義message變量 if (k == 0) { message = "選課成功!"; session.setAttribute("message",message); //傳值 response.sendRedirect("xuanke.jsp"); //跳轉頁面,直接跳轉原來的頁面就好 } else{ message = "你已經選過這門課了!"; session.setAttribute("message",message); response.sendRedirect("xuanke.jsp"); }
jsp中:
<% String mess=(String)session.getAttribute("message"); //接收后台傳來的message if(mess!=null&&!mess.equals("")){ //判斷message %> <script type="text/javascript"> alert("<%=mess%>"); //彈出警示框 </script> <% session.setAttribute("message",""); //將message值設為空,否則將一直彈出。 } %>
顯示效果:點擊選課按鈕后,就會彈出警示框。
示例:
Servlet
if (k == 0) { dao.xuanke(xuanke1); String renshu = null; renshu = dao.selectrenshu(A.getClassnumber()); int y = Integer.parseInt(renshu); y = y + 1; renshu = "" + y; dao.updaterenshu(classnumber, renshu); message = "選課成功!"; session.setAttribute("message",message); response.sendRedirect("xuanke.jsp"); } else{ message = "你已經選過這門課了!"; session.setAttribute("message",message); response.sendRedirect("xuanke.jsp"); }
jsp:
<% String mess=(String)session.getAttribute("message"); if(mess!=null&&!mess.equals("")){ %> <script type="text/javascript"> alert("<%=mess%>"); </script> <% session.setAttribute("message",""); } %> <% } %>