jsp+servlet進行頁面延時跳轉
阿新 • • 發佈:2019-01-29
關於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核心標籤庫顯示資料
總結分析:
在做的過程中感覺此題的難點在於,第一眼看時會感覺沒法進行引數傳遞
突破點在於,建一個臨時容器存放資料,再就是用一箇中間頁面來體現延時跳轉的效果