/*
* 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";
}
}
闽公网安备 35060202000074号