//和sonymusic得两个类放在一个包里
//pagequery.java
package pagequery;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import db.dbconfig;
public class pagequery {
//private string sql;
//private connection conn;
//返回当前页号
private int curpage;
//返回分页大小
private int pagesize;
//返回总页数
private int pagecount;
//返回当前页的记录条数
private int pagerowscount;
//返回总记录行数
private int rowscountget;
//返回文件路径
private string filepath;
//返回传入参数
private map map=new hashmap();
public pagequery()
{
}
/*
public void setcurpage(int curpage) {
this.curpage = curpage;
}
public int getcurpage() {
return curpage;
}
public void setpagesize(int pagesize) {
this.pagesize = pagesize;
}
public int getpagesize() {
return pagesize;
}
*/
public int getpagerowscount() {
return pagerowscount;
}
public void setquery(string key,string value)
{
map.put(key,value);
}
public void setmap(httpservletrequest req){
enumeration parameternames=req.getparameternames();
while (parameternames.hasmoreelements())
{
string name=(string) parameternames.nextelement();
string values[]=req.getparametervalues(name);
//for(int i=0;i<values.length;i++){
string value=values[0];
if (name.equals("curpage")||name.equals("pagesize")||name.equals("submit")||name.equals("submit")||value==null||value.length()==0)
{}
else{
map.put(name,value);
}
}
}
public string getsqlquery(){
if (map.isempty())
{
return "";
}
else
{
stringbuffer strb = new stringbuffer(" where 1=1 ");
iterator imap=map.entryset().iterator();
while(imap.hasnext())
{strb.append( "and " );
map.entry entry=(map.entry)imap.next();
string key=(string)entry.getkey();
try {
int value=integer.parseint((string)entry.getvalue());
strb.append( key );
strb.append( " =" );
strb.append( value );
strb.append( " " );
}
catch (numberformatexception e){
e.printstacktrace();
string value=(string)entry.getvalue();
strb.append( key );
strb.append( " like%" );
strb.append( value );
strb.append( "% " );
}
}
return strb.tostring();
}
}
public resultset myquery(connection conn,string sql, httpservletrequest req) throws exception {
return myquery( conn, sql, req,15);
}
public resultset myquery(connection conn,string sql, httpservletrequest req ,int ps) throws exception {
//this.conn=conn;
//this.sql=query;
preparedstatement pstmt=null;
try {
pstmt = conn.preparestatement(sql);
resultset rset = pstmt.executequery();
pageable rs=null;
rs=new pageableresultset2(rset);//构造一个pageable
this.rowscountget=rs.getrowscount();
try{
curpage=integer.parseint(req.getparameter("curpage"));}
catch (exception e) { curpage=1;
}
try{
pagesize=integer.parseint(req.getparameter("pagesize"));
}
catch (exception e) {
// e.printstacktrace();
pagesize=ps;
}
pagesize=pagesize>rowscountget?rowscountget:pagesize;
rs.setpagesize(pagesize);//每页n个记录
rs.gotopage(curpage);//跳转到第n页
this.pagecount=rs.getpagecount();
this.pagerowscount=rs.getpagerowscount();
this.filepath=req.getrequesturi();
/*
for(int i=0; i<pagerowscount; i++){//循环处理
content.append(rs.getstring(1));
content.append(" ");
content.append(rs.getstring(2));
content.append("<br>");
rs.next();
}
*/
return rs;
}
catch (exception e)
{
return null;
}
}
public string javascript(){
stringbuffer javascript = new stringbuffer("");
javascript.append(" <script language=javascript>\n");
javascript.append("function viewpage(ipage){\n");
javascript.append("document.asdffsdsdffdgfgfgf.curpage.value=ipage;\n");
javascript.append("document.asdffsdsdffdgfgfgf.submit();\n");
javascript.append(" } </script>\n");
return javascript.tostring();
}
public string pagelegend(){
stringbuffer strb = new stringbuffer("");
strb.append("<form name=asdffsdsdffdgfgfgf method=post action="+filepath+">");
strb.append( "本页");
strb.append(pagerowscount);
strb.append( "条记录 共" + rowscountget + "条记录 ");
if(pagecount==0||curpage==1){
strb.append( " 首页 ");
strb.append( " 前页 ");}
else {
strb.append( "\n<a href=javascript:viewpage(1)>首页</a> ");
strb.append( " \n<a href=javascript:viewpage(" + (curpage-1)+")>前页</a> ");}
if(curpage==1||pagecount==curpage){
strb.append( " 后页 ");
strb.append( " 尾页 ");}
else
{
strb.append( " \n<a href=javascript:viewpage(" + (curpage+1)+")>后页</a> ");
strb.append( " \n<a href=javascript:viewpage(" + (pagecount)+")>尾页</a>");
}
strb.append( " 页次:" + curpage + "/" + pagecount + "页 ");
strb.append( "\n<input name=pagesize type=text size=2 value="+pagesize+">" + "条/页 " );
strb.append("\n<select name=curpage>\n");
for (int i=1;i<=pagecount;i++){
//if (i==curpage)
// strb.append("<option value="+i+" selected>"+i+"</option>\n");
// else
strb.append("<option value="+i+">"+i+"</option>\n");
}
strb.append("</select>");
if (!map.isempty()){
iterator imap=map.entryset().iterator();
while(imap.hasnext())
{
map.entry entry=(map.entry)imap.next();
string key=(string)entry.getkey();
string value=(string)entry.getvalue();
strb.append("<input type=\"hidden\" name=\"");
strb.append(key);
strb.append("\" value=\"");
strb.append(value);
strb.append("\">\n");
}}
strb.append("页 <input type=button name=submit value=go language=javascript onclick=viewpage(document.asdffsdsdffdgfgfgf.curpage.value)></form>");
return strb.tostring();
}
}
//getparameter.java
package pagequery;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class getparameter {
private map map=new hashmap();
public getparameter(){};
public string getmap(httpservletrequest req){
enumeration parameternames=req.getparameternames();
while (parameternames.hasmoreelements())
{
string name=(string) parameternames.nextelement();
string values[]=req.getparametervalues(name);
//for(int i=0;i<values.length;i++){
string value=values[0];
if (name.equals("curpage")||name.equals("pagesize")||name.equals("submit")||name.equals("submit")||value==null||value.length()==0)
{}
else{
map.put(name,value);
}
// }
}
if (map.isempty())
{
return "";
}
else
{
stringbuffer strb = new stringbuffer(" where 1=1 ");
iterator imap=map.entryset().iterator();
while(imap.hasnext())
{strb.append( "and " );
map.entry entry=(map.entry)imap.next();
string key=(string)entry.getkey();
try {
int value=integer.parseint((string)entry.getvalue());
strb.append( key );
strb.append( " =" );
strb.append( value );
strb.append( " " );
}
catch (numberformatexception e){
e.printstacktrace();
string value=(string)entry.getvalue();
strb.append( key );
strb.append( " like%" );
strb.append( value );
strb.append( "% " );
}
}
return strb.tostring();
}
}
}
//news.jsp
<%@include file="loginforce.jsp"%>
<%@ page contenttype="text/html; charset=gb2312" %>
<%@ page import="java.sql.*,parameter.*" %>
<jsp:usebean id="pagequery" class="pagequery.pagequery" scope="page"/>
<%–jsp:usebean id="getparameter" class="pagequery.getparameter" scope="page"/–%>
<jsp:usebean id="dbconfig" class="db.dbconfig" scope="page"/>
<html>
<head>
<title>新闻管理</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="/css/gccss.css" type="text/css">
<script language="javascript">
function checkall(curelement)
{
var stable = curelement.parentelement.parentelement.parentelement.parentelement;
if(curelement.checked){
for(var i=1;i<stable.rows.length;i++){
stable.rows(i).children[0].children[0].checked=true;
}
}else{
for(var i=1;i<stable.rows.length;i++){
stable.rows(i).children[0].children[0].checked=false;
}
}
}
function newbigwindow(url, windowname)
{
window.open(url, windowname, "width=800,height=600,left=100,top=0,scrollbars=yes,resizeable=yes");
}
function ischecked(){
for (var i=0;i<document.forms[0].elements.length;i++){
var e = document.forms[0].elements[i];
if (e.name == items)
if(e.checked) return true;
}
return false;
}
function dodel(){
if(ischecked()){
if(confirm("确定删除?")){
document.forms[0].submit();
return true;
}
return false;
}
return false;
}
</script>
</head>
<body>
<br>
<center><span class=head>新闻管理</span></center>
<br>
<form name=main_form method=post action="newsdelete.jsp">
<table width="95%" border="0" cellspacing="2" cellpadding="2" align="center" class="table_a">
<tr class="title">
<td width="5%" align="center"><input type="checkbox" name="checkbox" value="checkbox" onclick="checkall(this)"></td>
<td width="5%" align="center">修 改</td>
<td width="10%">类型</td>
<td width="50%">标题</td>
<td width="15%">发布日期</td>
<td width="7%">是否推荐</td>
<td width="8%">点击数</td>
<%
// dbconfig dbconfig;
connection conn;
//dbconfig=new dbconfig();
conn=dbconfig.getconnect();
parameterparser parser = new parameterparser(request);
string _types=parser.getstringparameter("types","");
if (_types.length()==0)
{
_types="1=1";
}
else
{
_types=" types ="+_types ;
}
string _hot=parser.getstringparameter("hot","");
if (_hot.length()==0)
{
_hot="1=1";
}
else
{
_hot=" hot ="+_hot ;
}
string _title=parser.getstringparameter("title","");
if (_title.length()==0)
{
_title="1=1";
}
else
{
_title=" title like %"+_title+"%" ;
}
pagequery.setmap(request);
//string ds=getparameter.getmap(request);
//string ds=pagequery.getsqlquery();
string sql="select id,types,title,news_date,hot,count from news where "+_types+" and "+_title+" and " +_hot+ " order by id desc";
out.println(sql);
//out.println("<br>");
//stringbuffer content = new stringbuffer("");
resultset rs;
rs=pagequery.myquery(conn,sql,request,4);
//pagequery.setquery("types",parser.getstringparameter("types", ""));
int pagerowscount=pagequery.getpagerowscount();
int t=0;string tt="t2";
for(int i=0; i<pagerowscount; i++){//循环处理
t++;
int id=rs.getint(1);
string types=rs.getstring(2);
string title=rs.getstring(3);
string news_date=rs.getstring(4);
int hot=rs.getint(5);
int count=rs.getint(6);
string hot_to_str;
switch (hot){
case 0:hot_to_str="否"; break;
case 1:hot_to_str="是"; break;
default:hot_to_str="否";}
tt=t%2==0?"t2":"t1";
//content.append(rs.getstring(1));
//content.append(" ");
//content.append(rs.getstring(2));
//content.append("<br>");
%>
<tr class="<%=tt%>">
<td align="center"><input type="checkbox" name="items" value="<%=id%>"></td>
<td align="center"><a href="newsmod.jsp?id=<%=id%>">修改</a></td>
<td><%=types%></td>
<td><a href="javascript:newbigwindow(newsshow.jsp?id=<%=id%>,_blank)" title="查看详细"><%=title%></a></td>
<td><%=news_date%></td>
<td><%=hot_to_str%></td>
<td><%=count%></td>
</tr>
<%
rs.next();
}
conn.close();
%>
</table></form>
<hr noshade size="1">
<table width="95%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <div align="right"><%out.println(pagequery.pagelegend());
out.println(pagequery.javascript());%>
</div></td>
</tr>
</table>
<%
//out.println(content.tostring());
//resultsetmetadata resultsmeta=rs.getmetadata();
//int columns=resultsmeta.getcolumncount();
// out.println("<br>");
//out.println(columns);
%>
<br>
<div align="center">
<input type="button" name="createnew" value="增 加" onclick="location.href=newsadd.jsp">
<input type="button" name="del" value="删 除" onclick="return dodel();">
</div>
<br>
<br>
<div>
<form name="main_form" method="post" action="news.jsp">
<table width="60%" border="0" cellspacing="2" cellpadding="2" class="table_a" align="center">
<tr class="title">
<td colspan="4"> 请选择查询条件</td>
</tr>
<tr><td with="20" class="t1"><div align="center">类 型</div></td>
<td class="t2">
<select name="types">
<option value="">忽略</option>
<option value="1">1</option>
</select>
</td>
</tr>
<tr>
<td width="20%" class="t1">
<div align="center">是否推荐</div>
</td>
<td class="t2">
<select name="hot">
<option value="">忽略</option>
<option value="1">否</option>
<option value="2">是</option>
</td>
</tr>
</tr>
<tr>
<td width="20%" class="t1">
<div align="center">标 题</div>
</td>
<td class="t2">
<input type="text" name="title" size=37 value="">
</td>
</tr>
</table><br>
<div align="center"><input type="submit" name="query" value="查询"></div>
</form>
</div>
</body>
</html>
