您的位置:首页 > 产品设计 > UI/UE

JSP系统开发学习之四关于用户登录界面的补充——通过request页面传值&wel.jsp的MVC的实现

2016-12-18 22:11 1311 查看
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的共享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐