1、由於在.jsp頁面中不應進行相關.java的邏輯處理文件的調用,因此我們在LoginClServlet.java中當登陸成功後,可通過下列語句獲取相關的數據(wel.jsp需要使用的):
ArrayList al=ubc.getUserByPage(1);
int pageCount=ubc.getPageCount();
那麼我們如何傳遞到wel.jsp頁面呢?可以通過request設置屬性:
request.setAttribute("result", al);
request.setAttribute("pageCount", pageCount+"");
這樣在wel界面就可以這樣改寫代碼:
//調用UserBeanCl的方法(創建一個UserBeanCl的方法,然後完成處理),完成分頁顯示
//UserBeanCl ubc=new UserBeanCl();
//ArrayList al=ubc.getUserByPage(pageNow);
//要顯示的用戶信息從request中取
ArrayList al=(ArrayList)request.getAttribute("result");//wel界面初始顯示的al就是這樣獲得的
2、對於wel.jsp頁面,我們要把它構造成MVC的形式
添加一個Servlet,UsersClServlet.java
package com.jingchenyong.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jingchenyong.model.UserBeanCl;
public class UsersClServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到用戶期望顯示的pageNow
String s_pageNow=request.getParameter("pageNow");
try {
int pageNow=Integer.parseInt(s_pageNow);
//調用UserBeanCl
UserBeanCl ubc=new UserBeanCl();
ArrayList al=ubc.getUserByPage(pageNow);
int pageCount=ubc.getPageCount();
//將al,pageCount放入request中
request.setAttribute("result", al);
request.setAttribute("pageCount", pageCount+"");
//重新跳轉回wel.jsp
request.getRequestDispatcher("wel.jsp").forward(request, response);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}
下面是wel.jsp界面的改寫:
//要顯示的用戶信息從request中取
ArrayList al=(ArrayList)request.getAttribute("result");
當點擊超鏈接時,我們提交到Servlet處理
//上一頁
if(pageNow!=1){
out.println("<a href=UsersClServlet?pageNow="+(pageNow-1)+">上一頁</a>");
}
//顯示超鏈接
for(int i=pageNow;i<=pageNow+4;i++){
out.println("<a href=UsersClServlet?pageNow="+i+">["+i+"]</a>");
}
String s_pageCount=(String)request.getAttribute("pageCount");
//得到pageCount
int pageCount=Integer.parseInt(s_pageCount);
//下一頁
if(pageNow!=pageCount)
out.println("<a href=UsersClServlet?pageNow="+(pageNow+1)+">下一頁</a>");
這裏“UsersClServlet?pageNow=”會使得pageNow被保存在request中,然後UsersClServlet.java通過request.getParameter("pageNow")獲取它並通過查詢相關數據,保存到request中,供wel.jsp頁面調用。這裏注意一下:我們是通過這種方式request.getRequestDispatcher("wel.jsp").forward(request, response)進行頁面跳轉,因爲這樣可以實現request的共享。