后台Java代码:
/**
* 获取记录总条数
* @return
*/
public int getSOPTotalSize(){
int count = 0;
Connection conn = DBManager.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement("select count(*) as scount from sopbean");
rs = ps.executeQuery();
while(rs.next()){
count = rs.getInt("scount");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(rs, ps);
}
return count;
}
/**
* @param page 页码
* @param pagecount 一页显示多少行
* @return
*/
public List<SOPBean> querySOPList(int page, int pagecount){
List<SOPBean> list = new ArrayList<SOPBean>();
Connection conn = DBManager.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
SOPBean bean = null;
if (conn != null) {
try {
ps = conn.prepareStatement("select * from (select row_number() over() as rownum, sopbean.* from sopbean) as temp where rownum>=? and rownum<=? order by serialno");
ps.setInt(1, (page-1)*pagecount+1);
ps.setInt(2, page*pagecount);
rs = ps.executeQuery();
while(rs.next()){
bean = new SOPBean();
bean.setSid(rs.getInt("SID"));
bean.setSerialno(rs.getString("SERIALNO"));
bean.setFileName(rs.getString("FILENAME"));
bean.setFormate(rs.getString("FORMATE"));
bean.setAuthor(rs.getString("AUTHOR"));
bean.setPath(rs.getString("PATH"));
bean.setSize(rs.getString("SIZE"));
bean.setTrandate(rs.getTimestamp("TRANDATE"));
list.add(bean);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(rs, ps);
}
}
return list;
}
页面上采用DWR做的,里面的Service是后台公布给前台的类,里面主要实现了从数据库里面查询的方法
前台页面代码:
<script type="text/javascript"
src="dwr/interface/SOPService.js"></script>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript">
//分页
var perNum = 18;
var maxPage = 1;
var curPage = 1;
function getSopTotalCount(){
SOPService.getSOPTotalSize(regetSopTotalCount);
}
function regetSopTotalCount(count){
if(count<=perNum){
maxPage = 1;
}else if(count%perNum==0){
maxPage = Math.floor(count/perNum);
}else if(count%perNum!=0){
maxPage = Math.floor(count/perNum)+1;
}
var index = "<span><b>"+curPage+"/"+(maxPage)+"</b></span>";
document.getElementById("pagingIndex").innerHTML=index;
}
function go(page){
getSopTotalCount();
if (page<=1){
getSOPList(1);
curPage = 1;
}else if(page >= maxPage){
getSOPList(maxPage);
curPage = maxPage;
}else{
getSOPList(page);
curPage = page;
}
var index = "<span><b>"+curPage+"/"+(maxPage)+"</b></span>";
document.getElementById("pagingIndex").innerHTML=index;
}
//end
function initSystem(){
go(curPage);
}
Date.prototype.format = function(format){
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
var sopData = null;
function getSopID(index){
var serialnoV = this.sopData[index].serialno;
return serialnoV;
}
function getCid(){
return window.document.getElementById("cidhidden").value;
}
function getSOPList(pageNum){
SOPService.querySOPPageList(pageNum,perNum,getSOPListResult);
}
function getSOPListResult(sopList){
if(sopList.length>0){
window.document.getElementById("tableLast").style.display="inline";
}else{
window.document.getElementById("tableLast").style.display="none";
}
this.sopData = sopList;
var html = "<table width='100%' align='center' bordercolor='#339542;' border='1' style='border-collapse: collapse' cellpadding='0' cellspacing='0'>";
html+="<tr id='testtr'>";
html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
html+="<div class='headdiv'>";
html+="SOP编号";
html+="</div>";
html+="</td>";
html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
html+="<div class='headdiv'>";
html+="文件名";
html+="</div>";
html+="</td>";
html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
html+="<div class='headdiv'>";
html+="文件格式";
html+="</div>";
html+="</td>";
html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
html+="<div class='headdiv'>";
html+="文件大小";
html+="</div>";
html+="</td>";
html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
html+="<div class='headdiv'>";
html+="存放路径";
html+="</div>";
html+="</td>";
html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
html+="<div class='headdiv'>";
html+="上传作者";
html+="</div>";
html+="</td>";
html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
html+="<div class='headdiv'>";
html+="上传日期</div>";
html+="</td>";
html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
html+="<div class='headdiv'>";
html+="操作</div>";
html+="</td>";
html+="</tr>";
for(var i=0;i<sopList.length;i++){
var sopBean = sopList[i];
html+=" <tr id='testtr'>";
html+="<td align='center'><a href='ViewSOPServlet?sid="+getSopID(i)+"&cid="+getCid()+"' target='_blank'>"+sopBean.serialno+"</a></td>";
html+="<td align='center'><a href='ViewSOPServlet?sid="+getSopID(i)+"&cid="+getCid()+"' target='_blank'>"+sopBean.fileName+"</a></td>";
html+="<td align='center'>"+sopBean.formate+"</td>";
html+="<td align='center'>"+sopBean.size+"</td>";
html+="<td align='center'>"+sopBean.path+"</td>";
html+="<td align='center'>"+sopBean.author+"</td>";
html+="<td align='center'>"+sopBean.trandate.format("yyyy-MM-dd hh:mm:ss")+"</td>";
html+="<td align='center'><a href='ViewSOPServlet?sid="+getSopID(i)+"&cid="+getCid()+"' target='_blank'>查看</a></td>";
html+="</tr> ";
}
html+="</table>";
var tableBodyC = window.document.getElementById("tableBody");
tableBodyC.innerHTML = html;
}
</script>
</head>
<body οnlοad="initSystem();">
<div style=" height: 10px; background-color: #339542;">
</div>
<div style=" clear: both; height: 25px;"></div>
<div style=" margin: 0 auto; height: 40px; width: 980px;">
<table border="0" width="100%" height="100%">
<tr><td width="300"><img src="images/logo.jpg" /></td><td></td></tr>
<tr><td></td><td></td></tr>
</table>
<hr>
</div>
<div style=" clear: both; height: 50px;"></div>
<div style=" margin:0 auto; height: 30px; width: 980px;">
<div style=" float: left;"><input id="cidhidden" type="hidden" value="${user.cid}">${user.name},欢迎您登录SOP阅读系统,您当前系统IP为:<span>${user.ip}</span></div>
<div style=" float: right;">
<%if(userBean.getRights()==2){ %>
<span id="superdiv"><a href="admin/usermanager.jsp">用户管理</a> | </span>
<%} %>
<%if(userBean.getRights()==1 || userBean.getRights()==2){ %>
<span id="admindiv"><a href="admin/sopmanager.jsp">SOP管理</a> | </span>
<%} %>
<a href="home/userset.jsp">设置</a> | <a href="<%=basePath %>GlobalServlet?mask=logout">登出</a></div>
</div>
<div style=" margin:0 auto; height: 20px; width: 980px;">SOP列表<a href="javascript:;" οnclick="go(curPage);">(刷新)</a>:</div>
<div style=" margin:0 auto; height: 420px; width: 980px; overflow-y: auto;">
<div id="tableBody" style="overflow-y: auto;">
</div>
<div style="clear: both; height: 10px;"></div>
<div id="tableLast" style="float: right; display: none;">
<a href="javascript:;" οnclick="go(1);">首页</a>
<a href="javascript:;" οnclick="go(curPage-1);">上一页</a>
<a href="javascript:;" οnclick="go(curPage+1);">下一页</a>
<a href="javascript:;" οnclick="go(maxPage);">末页</a>
<span id="pagingIndex">
<span><b>0/0</b></span>
</span>
转到 <input name="pagenav" id="pagenav" type="text" size="2" οnkeypress="javaScript:if(event.keyCode==13){go(this.value);}" />
页<a href="javascript:;" οnclick="javascript:go(document.getElementById('pagenav').value);">Go</a>
</div>
</div>
<div style=" clear: both; height: 50px;"></div>