| |
/* * guestbookservlet.java * * created on */
import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import java.util.date; /** * * @author 川石 * 请尊重作者的劳动 * @version 1.0 */ public class guestbookservlet extends httpservlet {
boolean debug=false; string sdbdriver; connection conn=null; resultset rs=null; /** initializes the servlet. */ public void init(servletconfig config) throws servletexception { super.init(config); if(debug) sdbdriver=new string("sun.jdbc.odbc.jdbcodbcdriver"); else sdbdriver=new string("org.gjt.mm.mysql.driver"); try{ class.forname(sdbdriver); } catch(java.lang.classnotfoundexception e){
system.err.println("driver类初始化:"+e.getmessage()); }
}
/** destroys the servlet. */ public void destroy() {
}
/** processes requests for both http <code>get</code> and <code>post</code> methods. * @param request servlet request * @param response servlet response */ protected void processrequest(httpservletrequest request, httpservletresponse response) throws servletexception, java.io.ioexception { response.setcontenttype("text/html;charset=gb2312"); java.io.printwriter out = response.getwriter(); boolean empty=true; boolean noresult=true; string sqlstr; int currentpage=0; int totalpage=0; int reccount=0; resultset myrs=null; string username=request.getparameter("username"); string email=request.getparameter("email"); string ucontent=request.getparameter("ucontent"); string ipage=request.getparameter("ipage"); if(ipage==null||ipage.length()==0) currentpage=1; else currentpage=integer.parseint(ipage); if((username==null||username.length()==0)||(ucontent==null||ucontent.length()==0))empty=true; else empty=false;
date mydate=new date(); //string intime=new string(string.valueof(mydate.getyear()+1990)+string.valueof(mydate.getmonth())); string year=string.valueof(mydate.getyear()+1900); string month=string.valueof(mydate.getmonth()+1); if(month.length()==1) month=new string("0"+month); string days=string.valueof(mydate.getdate()); if(days.length()==1) days=new string("0"+days); string hours=string.valueof(mydate.gethours()); if(hours.length()==1) hours=new string("0"+hours); string minutes=string.valueof(mydate.getminutes()); if(minutes.length()==1) minutes=new string("0"+minutes);
string intime=year+"-"+month+"-"+days+" "+hours+":"+minutes; if(email==null||email.length()==0) email=new string(""); if(!empty){ //username=convert(username); //email=convert(email); //ucontent=convert(ucontent); sqlstr="insert into mintegbook(mname,memail,mcontent,mtime,mid) values("+username+","+email+","+ucontent+","+intime+",1)"; getdsnconn(); executeinsert(sqlstr); } sqlstr=new string("select mname,memail,mcontent,mtime from mintegbook order by mtime desc");
getdsnconn(); reccount=getrecordcount("mintegbook"); if(reccount==0) noresult=true; else noresult=false; if(!noresult){ int ipagesize=10; totalpage=gettotalpage("mintegbook",ipagesize); if(currentpage>totalpage) currentpage=totalpage; int cursor=(currentpage-1)*ipagesize+1; try{ myrs=executescrollablequery(sqlstr); myrs.absolute(cursor); } catch(sqlexception e){ noresult=true; } } out.println("<html><head><title>我的servlet留言板</title>"); out.println("<meta http-equiv="content-type" content="text/html; charset=gb2312">"); out.println("<style type="text/css">"); out.println("<!--"); out.println(".mytext { font-family: "宋体"; font-size: 12px}"); out.println(" -->"); out.println("</style>"); out.println("</head>"); out.println("<body bgcolor="#ffffff" text="#000000">"); out.println("<table width="600" border="0" cellspacing="0" cellpadding="0" align="center" class="mytext">"); out.println("<tr><td height="22"> | <a href="http://www.vcdoor.com">我的主页</a> | 我的servlet留言板(<a href="mailto:yf188@21cn.com">川石</a>制作)</td></tr>"); out.println("<tr><td height="1" bgcolor="#999933"></td></tr>"); out.println("</table>"); out.println("<br>"); out.println("<table width="600" border="0" cellspacing="0" cellpadding="0" align="center" class="mytext">"); out.println("<tr><td height="8"></td></tr>"); out.println("<tr><td height="18" bgcolor="#f7f7f7"><div align="right">"); out.println("共有 "+reccount + " 条留言 "); out.println(" 当前第<font color=#ff0000>"+currentpage+"</font>/共 "+totalpage+" 页 "); if(currentpage>1) out.println(" <a href=guestbookservlet?ipage=1>首页</a> <a href=guestbookservlet?ipage="+(currentpage-1)+">上一页</a> "); else out.println(" 首页 上一页 "); if(currentpage<totalpage) out.println(" <a href=guestbookservlet?ipage="+(currentpage+1)+">下一页</a> <a href=guestbookservlet?ipage="+totalpage+">末页</a> "); else out.println(" 下一页 末页 ");
out.println("</div></td></tr>");
out.println("</table>"); out.println("<br>");
//这里是显示留言内容 if(!noresult){ string dname; string demail; string dcontent; string dtime; date temptime; try{ do{
dname=new string(myrs.getstring("mname")); demail=new string(myrs.getstring("memail")); dcontent=new string(myrs.getstring("mcontent")); try{ dtime=new string(myrs.getobject("mtime").tostring()); } catch(java.lang.nullpointerexception e){ dtime=new string("2001-04-06 12:30"); } if(dname==null) dname=new string("川石"); if(demail==null) demail=new string("yf188@21cn.com"); if(dcontent==null) dcontent=new string("test"); if(dtime==null) dtime=new string("2001-04-06 12:30"); dname=convert(dname); dcontent=convert(dcontent); //temptime=myrs.getdate("mtime");
/* string tempyear=string.valueof(temptime.getyear()+1900); string tempmonth=string.valueof(temptime.getmonth()+1); if(tempmonth.length()==1) tempmonth=new string("0"+tempmonth); string tempdays=string.valueof(temptime.getdate()); if(tempdays.length()==1) tempdays=new string("0"+tempdays); string tempminute=string.valueof(temptime.getminutes()); if(tempminute.length()==1) tempminute=new string("0"+tempminute); string temphours=string.valueof(temptime.gethours()); if(temphours.length()==1) temphours=new string("0"+temphours); string dtime=tempyear+" 年 "+ tempmonth +" 月 "+ tempdays +" 日 " + temphours+ " 时 "+ tempminute + " 分 "; */ out.println("<table width="600" border="0" cellspacing="0" cellpadding="4" align="center" class="mytext">"); out.println("<tr><td>姓名 <a href="mailto:"+demail+"">"+dname+"</a> 留言时间:"+dtime+"</td></tr>"); out.println("<tr><td height="10"></td></tr>"); out.println("<tr><td height="10">"+dcontent+"</td></tr>"); out.println("</table>"); out.println("<hr width="600" size="1">"); }while(myrs.next());} catch(sqlexception e){ out.println("error found"); } } else{ out.println("还没有留言!"); } //结束
out.println("<form name="form1" method="post" action="guestbookservlet">"); out.println("<table width="600" border="0" cellspacing="0" cellpadding="4" align="center" class="mytext">"); out.println("<tr><td width="80">姓名:</td><td><input type="text" name="username">*</td></tr>"); out.println("<tr><td>email:</td><td><input type="text" name="email">*</td></tr>"); out.println("<tr><td>留言:</td><td><textarea name="ucontent" cols="65" rows="4"></textarea></td></tr>"); out.println("</table>"); out.println("<table width="400" border="0" cellspacing="0" cellpadding="6" align="center" class="mytext">"); out.println("<tr><td height="15" width="200"> </td><td> </td></tr>"); out.println("<tr><td><div align="right"><input type="button" name="button" value=" 提 交 " style="cursor:hand" onclick="javascript:check()"></div></td>"); out.println("<td><input type="reset" name="submit2" value=" 重 置 "></td></tr>"); out.println("</table>"); out.println("</form>");
out.println("<table width="400" border="0" cellspacing="0" cellpadding="4" align="center" class="mytext">"); out.println("<tr><td width="15"> </td></tr>"); out.println("<tr><td><div align="left">声明:这是川石利用国外免费jsp服务器开发的servlet留言程序。应用jdbc连接mysql数据库。</div></td></tr>"); out.println("<tr><td> </td></tr>"); out.println("</table>"); out.println("</body>"); out.println("</html>");
out.println("<script language="javascript">"); out.println("function check(){"); out.println("if(form1.username.value.length<1||form1.ucontent.value.length<1)"); out.println("{alert(姓名和留言是必须有的!);}else{form1.submit();}}"); out.println("</script>");
out.close(); }
/** handles the http <code>get</code> method. * @param request servlet request * @param response servlet response */ protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, java.io.ioexception { processrequest(request, response); }
/** handles the http <code>post</code> method. * @param request servlet request * @param response servlet response */ protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, java.io.ioexception { processrequest(request, response); } protected void getdsnconn(){ string sqlurl="jdbc:mysql://10.0.0.1/你申请用户名?user=你的名字&password=你的帐号"; try{ if(debug) conn=drivermanager.getconnection("jdbc:odbc:odbc源","用户名","密码口令"); else conn=drivermanager.getconnection(sqlurl); } catch(sqlexception es){ system.err.println("和库连接时出错:"+es.getmessage()); } } protected void executeinsert(string sqlstr){ try{ statement stmt=conn.createstatement(); stmt.executeupdate(sqlstr); } catch(sqlexception es){ system.err.println("执行插入时:"+es.getmessage()); } } protected void executeupdate(string sqlstr){ try{ statement stmt=conn.createstatement(); stmt.executeupdate(sqlstr); } catch(sqlexception e){ system.err.println("error in query record"); } }
//查寻
protected resultset executequery(string sqlstr){ rs=null; try{ statement stmt=conn.createstatement(); rs=stmt.executequery(sqlstr); } catch(sqlexception ex){ system.err.println("执行查寻出错:"+ex.getmessage()); } return rs; } protected resultset executescrollablequery(string sqlstr){ rs=null; try{ statement stmt=conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only); rs=stmt.executequery(sqlstr); } catch(sqlexception e){ system.err.println("执行动态查寻出错"); } return rs; } //得到表记录总数 protected int getrecordcount(string stablename){ rs=null; int countresult=0; string sqlstr="select count(*) from "+stablename; try{ statement stmt=conn.createstatement(); rs=stmt.executequery(sqlstr); if(rs.next()) countresult=rs.getint(1); rs=null; stmt.close(); } catch(sqlexception ex){ system.err.println(ex.getmessage());
}
return countresult; } //得到记录总页数 protected int gettotalpage(string stablename,int ipagesize){ int totalpage; int totalrecnum=getrecordcount(stablename); if(totalrecnum%ipagesize==0) totalpage=totalrecnum/ipagesize; else totalpage=totalrecnum/ipagesize+1; return totalpage; } protected string convert(string inputstr){ string converted=new string(); byte[] bytes; try{ bytes=inputstr.getbytes("iso8859-1"); converted=new string(bytes,"gb2312"); } catch(java.io.unsupportedencodingexception e){ system.out.print("error"); } return converted; } /** returns a short description of the servlet. */ public string getservletinfo() { return "short description"; }
}
|
|