1. 程式人生 > >jsp+servlet進行頁面延時跳轉

jsp+servlet進行頁面延時跳轉

        關於jsp+servlet對於頁面的延時跳轉問題

        作為一個剛接觸jsp+serlvet的小白,今天遇到了jsp+servlet延時跳轉的問題,剛開始沒思路,就在網上查詢,由於沒找到滿意的結果,最後只能自己往死裡寫,竟然寫出來了,興奮之餘,在這裡分享一下。

        問題:登陸成功後,過5秒鐘自動轉到目標介面

        分析
              1.在servlet中使用request接收來自於頁面的資料
              2.建立一個session,臨時存放一下接到的資料
              3.通過response.sendRedirect(request.getContextPath()+ 具體的jsp頁面路徑),將介面    轉到一個jsp頁面
              4.在轉到的jsp頁面中使用js來實現倒數和跳轉的效果
              5.然後轉到一個serlvet中,利用這個serlvet獲取session中臨時存放的資料,然後再轉到顯示資料的介面
              6.在jsp介面中顯示資料
       具體程式碼
       serlvet ——1
     
  public void login(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 封裝物件
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        User user = new User();
        user.setName(name);
        user.setPwd(pwd);
        //檢查是否登陸成功
        boolean flag = uBiz.doLogin(user);
        //登陸成功
        if (flag) {
            List<User> userList = uBiz.showUsers();
            request.getSession().setAttribute("userList", userList);
            response.sendRedirect(request.getContextPath()
                    + "/user/tiaozhuan.jsp");
        }
        //登陸失敗
        if (!flag) {
            response.sendRedirect(request.getContextPath()
                    + "/user/userError.jsp");
        }
    }




    tiaozhuan.jsp頁面
    
    
<script type="text/javascript">
        var time=5;
        setInterval("Time()",1000);
        
        function Time(){
            if(time == 0){
                location="<%=request.getContextPath()    %>/UserAction?method=allUsers";
            }
            document.getElementById("layer").innerHTML=""+time+"秒之後跳轉";
            time--;
        }
    </script>




    servlet——2

  
 public void allUsers(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        List<User> userList = (List<User>)request.getSession().getAttribute("userList");
        request.setAttribute("userList", userList);
        request.getRequestDispatcher("/user/allUser.jsp").forward(request, response);
    }

    allUser.jsp頁面:

    程式碼省略。
    在jsp中使用JSTL核心標籤庫顯示資料



    
    總結分析:

              在做的過程中感覺此題的難點在於,第一眼看時會感覺沒法進行引數傳遞            
              突破點在於,建一個臨時容器存放資料,再就是用一箇中間頁面來體現延時跳轉的效果

    到此,問題解決了。