请求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",""); } %> <% } %>