欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jsp+servlet进行页面延时跳转

程序员文章站 2022-07-14 18:07:21
...

        关于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核心标签库显示数据



    
    总结分析:

              在做的过程中感觉此题的难点在于,第一眼看时会感觉没法进行参数传递            
              突破点在于,建一个临时容器存放数据,再就是用一个中间页面来体现延时跳转的效果


    到此,问题解决了。