1. 程式人生 > 其它 >用Servlet+jsp寫彈出框

用Servlet+jsp寫彈出框

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