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

版权声明:本文为博主原创文章,未经博主允许不得转载。 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界面的改写:

//要显示的用户信息从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的共享。


猜你喜欢

转载自blog.csdn.net/JCY1009015337/article/details/53728348