版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JCY1009015337/article/details/53728348
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界面的改写:
扫描二维码关注公众号,回复:
6519729 查看本文章
//要显示的用户信息从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的共享。