JSP分页技术(jsp+servlet)

(1)、分页:利用数据库分页技术如下:原理是前后台传递参数,查询不同的内容

前台页面如下:

<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%@ page import="daomain.Project" %>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>项目资源管理系统</title>
<link rel="stylesheet" rev="stylesheet" href="css/style.css " type="text/css" media="all" />
<script type="text/javascript" src="Js/typem.js"></script>
<script type="text/javascript" src="Js/js.js"></script>
<script type="text/javascript" src="My97DatePicker/WdatePicker.js"></script>
<style type="text/css">
<!--
.atten {font-size:12px;font-weight:normal;color:#F00;}
-->
</style>
<script> 
  var errori ='<%=request.getAttribute("msg")%>';
  var updateerror ='<%=request.getAttribute("updateerror")%>';
 
  if(errori=='no'){
   alert("没有相应数据!");
  }
  if(errori=='deleteyes'){
   alert("删除成功!");
  }
  if(errori=='deleteno'){
  alert("删除失败!");
  }
  if(updateerror!=null && updateerror=='no'){
  	alert("更新成功!");
  }else if(updateerror!=null && updateerror=='yes'){
  	alert("更新失败!");
  }
</script>
<script language="javascript">
function test(obj)
{
	var projectname=document.getElementById("projectname");
	var starttime=document.getElementById("starttime");
	var endtime=document.getElementById("endtime");
	var l=document.getElementById("l");
	var selectValue = obj.options[obj.selectedIndex].value;
	if(selectValue=='project_time')
	{
	    projectname.style.display="none";
	    l.style.display="block";
		starttime.style.display="block";
		endtime.style.display="block";
	}else{
		projectname.style.display="block";
	    l.style.display="none";
		starttime.style.display="none";
		endtime.style.display="none";
	}
}
</script>
</head>
<body class="ContentBody">
<div class="MainDiv">
<table width="99%" border="0" cellpadding="0" cellspacing="0" class="CContent">
  <tr>
      <th class="tablestyle_title" >项目信息查询</th>
  </tr>
  <tr>
  <td class="CPanel">
  	 <form name="ProjectManagerForm" method="post" action="ProjectM">
                <table width="100%%" border="0" cellspacing="0" cellpadding="0">
                  <tr>       
                    <td width="78%">查询:
                      <select name="where" id="where" style="float:left" οnchange="test(this)">
                      	<option></option>
                        <option value="project_name">项目名称</option>
                        <option value="project_time">项目时间段</option>
                      </select>
                       <span style="float:left">  </span>
                      <input name="projectname" type="text" class="input" id="projectname" style="display:none;float:left"></input>
                      <input id="starttime" name="starttime" class="Wdate" type="text" οnfοcus="WdatePicker()" style="display:none;float:left" />
                      <label id="l" style="display:none;float:left">-</label>
                      <input id="endtime" name="endtime" class="Wdate" type="text" οnfοcus="WdatePicker()" style="display:none;float:left"/>
                       <span style="float:left">  </span>
                      <input type="submit" name="button" id="button" style="float:left" value="点击查询"></input><font color="red">(*默认为按照项目发布时间排序)</font>
                  </tr>
                </table>
      </form>
       <table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr align="center"  class="t1">
                    <td bgcolor="#D5E4F4"><strong>序号</strong></td>  
                    <td height="25" bgcolor="#D5E4F4"><strong>项目名称</strong></td>
                    <td bgcolor="#D5E4F4"><strong>项目来源</strong></td>  
                    <td bgcolor="#D5E4F4"><strong>项目类别</strong></td>
                    <td bgcolor="#D5E4F4"><strong>项目时间</strong></td>
                     <td bgcolor="#D5E4F4"><strong>项目归属</strong></td>
                    <td bgcolor="#D5E4F4"><strong>操作</strong></td>
                  </tr>
                  <%
                    String temppageNum=request.getParameter("curpage");  
            		int pageNum=1;          //定义页数  
            		int pageSize=10;        //定义每一页显示的个数  
            		if(temppageNum!=null){            //判断传入的输入值是否为空,并且进行强制类型转换  
                		pageNum=Integer.parseInt(temppageNum);  
           			 }  
           			int maxpage=1;//最大页码
           			String tempmaxpage=request.getParameter("maxpage");
           			int reCount=20;
           			if(tempmaxpage!=null)
           			 reCount=Integer.parseInt(tempmaxpage);  
            		if(reCount%pageSize==0){
                		maxpage=reCount/pageSize;
                		}else{
                		maxpage=(reCount/pageSize)+1;  
                		}
                  List pl=(List)request.getAttribute("projectlist");
                  int i=0;
                  for(i=0;i<pl.size();i++){
                    Project p=(Project)pl.get(i);
                  %>
                    <tr align="center">
                     <td style="border-bottom: 3px solid;border-bottom-color:#D5E4F4;"><%=(i+1) %></td>
                      <td height="25" align="center" style="border-bottom: 3px solid;border-bottom-color:#D5E4F4;"><%=p.getProject_name() %></td>
                      <td style="border-bottom: 3px solid;border-bottom-color:#D5E4F4;"><%=p.getProject_from() %></td>
                      <td align="center" style="border-bottom: 3px solid;border-bottom-color:#D5E4F4;"><%=p.getProject_type() %></td>
                      <td align="center" style="border-bottom: 3px solid;border-bottom-color:#D5E4F4;"><%=p.getProject_time() %></td>
                      <td align="center" style="border-bottom: 3px solid;border-bottom-color:#D5E4F4;"><%=p.getProject_belong() %></td>
                      <td align="center" style="border-bottom: 3px solid;border-bottom-color:#D5E4F4;"><a href="updateproject?projectid=<%=p.getProject_id() %> ">修改</a> <a href="ProjectDel?projectid=<%=p.getProject_id() %>" onClick="return confirm('确定要删除该项目吗?')">删除</a></td>
                    </tr>
                    <%} %>
                </table>
      </td>
  </tr>
  <tr>
  <%  		int backPage=(pageNum==1) ? 1 :pageNum-1;  
            int nextPage=(pageNum==maxpage) ? maxpage : pageNum+1;  
   %>
  	<td align="right"><a style="color:red;" href="ProjectM?p=<%=backPage%>">上一页</a>|<a style="color:red" href="ProjectM?p=<%=nextPage%>">下一页</a></td>
  </tr>
</table>
</div>
</body>
</html>
后台代码如下:

package srevlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import daoimpl.ProjectDaoIml;
import daomain.Project;
@WebServlet(name="ProjectM",urlPatterns={"/ProjectM"})
public class ProjectManageServlet extends HttpServlet{
	public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
	{
		request.setCharacterEncoding("gb2312");
		RequestDispatcher rd;
		String errMsg="";
		String where="select  * from project ";
		try{
			String tempp=request.getParameter("p");
			if(tempp==null)
				tempp="1";
			int curpage=Integer.parseInt(tempp);//当前页
			 String tempwhere=request.getParameter("where");
			 if(tempwhere!=null && !tempwhere.equals("")){
				  if(tempwhere.equals("project_name")){
					  String projectname=request.getParameter("projectname");
					  if(projectname==null) projectname="";
					  where+=" where project_id not in (select * from (select project_id from project limit "+10*(curpage-1)+") as temp) and project_name='"+projectname+"' order by project_time limit 0,10";
				  }else{
						 String begintime=request.getParameter("starttime");
						 String endtime=request.getParameter("endtime");
						 if(begintime==null) begintime="";
						 if(endtime==null) endtime="";
						 where+=" where project_id not in (select * from (select project_id from project limit "+10*(curpage-1)+") as temp) and project_time>='"+begintime+"' and project_time<='"+endtime+"' order by project_time limit 0,10";
				  }
			 }else{
				 where+=" where project_id not in (select * from (select  project_id from project limit 0,"+10*(curpage-1)+") as temp)  order by project_time limit 0,10";
			 }
			 ProjectDaoIml piml=new ProjectDaoIml();
			List<Project> list=piml.getproject(where);
			int maxpage=piml.getcount(where);
			if(list==null || list.size()==0){
				errMsg="no";
				request.setAttribute("msg",errMsg);
				request.setAttribute("projectlist",list);
				//不能用response.sendRedirect();
				request.getRequestDispatcher("projectmanage.jsp").forward(request, response);
			}else{
				//一系列处理往user属性赋值操作后
				request.setAttribute("projectlist",list);
				request.setAttribute("curpage", curpage);
				request.setAttribute("maxpage", maxpage);
				//不能用response.sendRedirect();
				request.getRequestDispatcher("projectmanage.jsp").forward(request, response);
			}
		}catch (Exception e) {
			e.printStackTrace();
		}
	}
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值