一个JSP留言板不知道什么故障请高手求教~~~

raygtr 2004-03-15 11:52:58
/********运行时第一个见到的HTML页面******************/
<!-- index.html -->
<HTML>
<HEAD>
<TITLE> message board </TITLE>
</HEAD>
<LINK href="..\..\hellking.css" type=text/css rel=stylesheet>
<BODY>
<TABLE width="90%" align="center" border=1 cellspacing="0" cellpadding="0" bordercolordark="#CCCC99" bordercolorlight="#CCCC99">
<TR>
<TD align="center" bgcolor="#CCCC99">访客留言板</TD>
</TR>
<TR>
<TD><TABLE align="center" border=1 cellspacing="0" cellpadding="0" bordercolordark="#CCCC99" bordercolorlight="#CCCC99">
<FORM ACTION="addMessage.jsp">
<TR>
<TD>姓名:</TD>
<TD bgcolor="#CCCC99"><input type="text" name="name" size=25></TD>
</TR>
<TR>
<TD bgcolor="#CCCC99">E-mail:</TD>
<TD bgcolor="#CCCC99"><input type="text" name="email" size=25></TD>
</TR>
<TR>
<TD>主题:</TD>
<TD bgcolor="#CCCC99"><input type="text" name="title" size=25></TD>
</TR>
<TR>
<TD valign="top" bgcolor="#CCCC99">留言:</TD>
<TD><textarea name="content" rows=7 cols=25></textarea></TD>
</TR>
<TR>
<TD colspan=3><TABLE align="center" width="100%" cellspacing="0" cellpadding="0" bordercolordark="#CCCC99" bordercolorlight="#CCCC99">
<TR>
<TD align="center" bgcolor="#CCCC99"><input type="submit" value="提交留言"></TD>
<TD align="center"><a href="viewMessages.jsp"><font size=2>查看留言</font></a></TD>
<TD align="center" bgcolor="#CCCC99"><input type="reset" value="重新填写"></TD>
</TR>
</TABLE></TD>
</TR>
</FORM>
</TABLE></TD>
</TR>
</TABLE>
</BODY>
</HTML>
/********************以下是JSP代码*****************************/
/**********************************/
<%@ page import="java.sql.*,com.jspdev.ch9.*,java.util.*,java.sql.*" errorPage="../error.jsp"%>
<jsp:useBean id="messageVo" class="com.jspdev.ch9.MessageVO" scope="page">
<jsp:setProperty name="messageVo" property="*"/>
</jsp:useBean>
<jsp:useBean id="messageBean" class="com.jspdev.ch9.MessageBean" scope="page"/>
<HTML>
<HEAD>
<TITLE>add message into table </TITLE>
</HEAD>
<BODY>
<%
try
{

messageBean.setMessage(messageVo);
messageBean.addMessage();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
<jsp:forward page="viewMessages.jsp" />
</body>
</html>

/********************这是显示数据库数据的JSP代码********************/
<%@ page import="java.sql.*,com.jspdev.ch9.*,java.util.*,java.sql.*"%>
<jsp:useBean id="messageBean" class="com.jspdev.ch9.MessageBean" scope="page"/>
<HTML>
<HEAD>
<TITLE> show the message in the table </TITLE>
</HEAD>
<LINK href="..\..\hellking.css" type=text/css rel=stylesheet>
<BODY>
<p align="center">所有访客留言</p>
<hr>
<%
int message_count=0;
Collection messages=messageBean.getMessage();
Iterator it=messages.iterator();
while(it.hasNext())
{
MessageVO message=(MessageVO)it.next();
%>
<TABLE width="100%" align="center" border=1 brcolor=99ccff cellspacing="0" cellpadding="0" bordercolordark="#000000" bordercolorlight="#CCCC99">
<tr><td bgcolor="#CCCC99"><font size=2>主题:</font></td>
<td colspan=3><%=message.getTitle()%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>留言人:</font></td>
<td><%=message.getName()%></td><td bgcolor="#CCCC99"><font size=2>E-mail:</font></td>
<td>
<%
out.println("<a href=mailto:"+message.getEmail()+">"+message.getEmail()+"</a>");
%>
</td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>留言时间:</font></td><td colspan=3>
<%
out.println("<font size=2>"+message.getDate().toLocaleString()+"</font>");
%>
</td></tr>
<tr><td align="center">
<%
out.println("("+message_count+")");
%>
</td>
<td colspan=3><%=message.getContent()%>
</td></tr>
</table>
<%
out.println("<hr>");
message_count++;
}
%>
<p align="center"><a href="index.html">我要留言</a></p>
</body>
</html>
/**********************以下是JAVABEAN代码**/
package com.jspdev.ch9;
public class MessageVO implements java.io.Serializable
{
private String name,email,title,content;
private java.sql.Date date;
public void setName(String name)
{
this.name=name;
}
public void setEmail(String email)
{
this.email=email;
}
public void setTitle(String title)
{
this.title=title;
}
public void setContent(String content)
{
this.content=content;
}
public String getName()
{
return this.name;
}

public String getContent()
{
return this.content;
}
public String getTitle()
{
return this.title;
}
public String getEmail()
{
return this.email;
}
public java.sql.Date getDate()
{
return this.date;
}
public void setDate(java.sql.Date date)
{
this.date=date;
}
}
/**************以下是JAVABEAN2代码这个BEAN是用来连接数据库的***********/
package com.jspdev.ch9;

//import com.microsoft.jdbc.sqlserver.SQLServerDriver;
import java.sql.*;
import java.util.*;

public class MessageBean
{
private Connection con;
MessageVO msg;

//获得数据库连接。
public MessageBean()
{
/*String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String SERVANDDB="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev";
String USER="sa";
String PWD="";
try
{

Class.forName(CLASSFORNAME);
con = DriverManager.getConnection(SERVANDDB,USER,PWD);*/

String url="jdbc:odbc:message";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"sa","");


}
catch(Exception e)
{
e.printStackTrace();
}
}
public void setMessage(MessageVO msg)
{
this.msg=msg;
}
public void addMessage()throws Exception
{
try
{
PreparedStatement stm=con.prepareStatement("insert into message values(sdf,sdf,sdf,sdf,null)");
stm.setString(1,msg.getTitle());
stm.setString(2,msg.getName());
stm.setDate(3,new java.sql.Date(new java.util.Date().getTime()));
if((msg.getEmail()).length()==0)
stm.setString(5,null);
else stm.setString(5,msg.getEmail());
stm.setString(4,msg.getContent());
try
{
stm.executeQuery();
}
catch(Exception e)
{
}

con.close();
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
}
public Collection getMessage()throws Exception
{
Collection ret=new ArrayList();
try
{
Statement stm=con.createStatement();
ResultSet result=stm.executeQuery("select count(*) from message");
int message_count=0;
if(result.next())
{
message_count=result.getInt(1);
result.close();
}
if(message_count>0)
{
result=stm.executeQuery("select * from message order by time desc");

while(result.next())
{
String title=result.getString("title");
String name=result.getString("name");
String mail=result.getString("mail");
String content=result.getString("content");
java.sql.Date date=result.getDate("time");
MessageVO message=new MessageVO();
message.setName(name);
message.setTitle(title);
message.setContent(content);
message.setDate(date);
message.setEmail(mail);
ret.add(message);
}
result.close();
stm.close();
}

con.close();

}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
return ret;
}
}
/*******数据库使用SQL SERVER 以下是SQL脚本********/

CREATE TABLE [dbo].[message] (
[Title] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Email] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Content] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Date] [datetime] NULL
) ON [PRIMARY]
GO

...全文
55 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
raygtr 2004-03-17
  • 打赏
  • 举报
回复
楼上的你没看见我有注释吗?
guxing415 2004-03-17
  • 打赏
  • 举报
回复
好好再重新检查一下你的数据连接!!
JavaKisser 2004-03-15
  • 打赏
  • 举报
回复
数据库问题
ddadoris 2004-03-15
  • 打赏
  • 举报
回复
问题就在这里
messageBean.setMessage(messageVo);在你的addmessage.jsp里
你的参数messageVo根本就是空的,所以没有数据能入库。

首先应该String name = request.getParameter("name");
然后messageVo.addName(name);
最后才能messageBean.setMessage(messageVo);

email,title之类的都是这样,解决问题请及时给分。:)
evilzydar 2004-03-15
  • 打赏
  • 举报
回复
呵呵,jsp编程详解里面的代码
我想是jdbc的问题。
raygtr 2004-03-15
  • 打赏
  • 举报
回复
问题就是数据库无法保存数据~~
当用户在HTML文件中输入完数据后
无法保存


求求各位大狭救救我啊
ddadoris 2004-03-15
  • 打赏
  • 举报
回复
楼主你的Bean问题大了,怎么两个classforname。
你构造器里的forname是用jdbc,请问你的驱动是否存在,有没有加载?

在你的try,catch中又用的是jdbc-odbc桥连接数据库。我想问一句,你有没有到控制面板→管理工具→数据源(odbc)里配置你的数据源?两种连接方法用一即可。这么多的class.forName(),当然是不对的
xunyiren 2004-03-15
  • 打赏
  • 举报
回复
改成这样试试:
PreparedStatement stm=con.prepareStatement("insert into message (title,name,date,content,email) values(?,?,?,?,?)");
xunyiren 2004-03-15
  • 打赏
  • 举报
回复
PreparedStatement stm=con.prepareStatement("insert into message values(sdf,sdf,sdf,sdf,null)");
这句话有问题

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧