[急啊!]小弟学做的留言板无法显示 过来看看 谢谢先 index.html提交到哪个页面??哪个页面的代码和所用到的类代码贴出来~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢2位的帮助了先index.html提交到AddMessageServlet.java再交给ViewMessageServlet.java 最后交给viewMessage.jsp页面来显示 你的index.html中form的action就直接写的是AddMessageServlet.java? 这样是不行的,提交给servlet的话,需要先在web.xml中进行serlvet的配置,然后根据url-pattern的写法来提交。你看看书,写的还是满详细的。 以下是我的代码:麻烦大哥们帮小弟看一下 谢了index.html文件:保在xujsp/index.html<html><head><title>我的第一个留言板的例子</title></head><body><table width="90%" align="cnter" border=1 cellspacing=0 bordercolordark="#cccc99" borderclorling="#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="addMessages_servlet"><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><TR><TD colspan=3><table align=center width="100%" cellspacing=0 cellpadding=0bordercolordark="#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>viewMessage.jsp文件如下:保在xuhui/viewMessage.jsp<%@ page import="java.sql.*,java.util.*,javax.servlet.*,javax.servlet.http.*"%><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=(Collection)request.getAttribute("messages");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>web.xml文件:xuhui/WEB-INF/web.xml;<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"><web-app><servlet> <servlet-name>ViewMessageServlet</servlet-name> <servlet-class>ViewMessageServlet</servlet-class> </servlet> <servlet> <servlet-name>AddMessageServlet</servlet-name> <servlet-class>AddMessageServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ViewMessageServlet</servlet-name> <url-pattern>/viewMessages_servlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AddMessageServlet</servlet-name> <url-pattern>/addMessages_servlet</url-pattern> </servlet-mapping></web-app>MessageVO.java文件如下:保在xuhui/WEB-INF/classes/MessageVO.javapublic 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; }} AddMessage.java文件如下:保在xuhui/WEB-INF/classes/AddMessageServlet.javaimport javax.servlet.*;import javax.servlet.http.*;import java.sql.*;import java.util.*;import java.io.*;public class AddMessageServlet extends HttpServlet{ private Connection con; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String name=request.getParameter("name"); String email=request.getParameter("email"); String title=request.getParameter("title"); String content=request.getParameter("content"); if(name==null) name=""; if(title==null) title=""; if(content==null) content=""; if(email==null) email=""; try { PreparedStatement stm=con.prepareStatement("insert into message values(?,?,?,?,?)"); stm.setString(1,title); stm.setString(2,name); if(email.length()==0) stm.setString(5,null); else stm.setString(5,email); stm.setDate(3,new java.sql.Date(new java.util.Date().getTime())); stm.setString(4,content); try { stm.executeQuery(); } catch(Exception e) { System.out.println("xulovejsp"); } RequestDispatcher requestDispatcher = request.getRequestDispatcher("/viewMessages_servlet"); requestDispatcher.forward(request,response); } catch(Exception e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doGet(request,response); } public AddMessageServlet() { // String CLASSFORNAME="org.gjt.mm.mysql.Driver"; // String SERVANDDB="jdbc:mysql://localhost/wrox"; // String USER="root"; // String PWD=""; try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); con = DriverManager.getConnection("jdbc:mysql://localhost/wrox","root",""); } catch(Exception e) { e.printStackTrace(); } } }ViewMessageServlet.java文件如下:保在xuhui/WEB-INF/classes/ViewMessageServlet.javaimport javax.servlet.*;import javax.servlet.http.*;import java.sql.*;import java.util.*;import java.io.*;public class ViewMessageServlet extends HttpServlet{private Connection con;//接收GET请求,执行数据库操作,保存结果到request中,把视图派发到下一个页面public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{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 email=result.getString("email");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(email);ret.add(message);}result.close();stm.close();}//保存执行结果,把视图派发到目标request.setAttribute("message",ret);RequestDispatcher requestDispatcher= request.getRequestDispatcher("/viewMessages.jsp");requestDispatcher.forward(request,response);}catch(Exception e){e.printStackTrace();}}//初始化到数据库的连接public ViewMessageServlet(){String CLASSFORNAME="org.gjt.mm.mysql.Driver";String SERVANDDB="jdbc:mysql://localhost/wrox";String USER="root";String PWD="";try{Class.forName(CLASSFORNAME).newInstance();con=DriverManager.getConnection(SERVANDDB,USER,PWD);}catch(Exception e){e.printStackTrace();}}//和GET请求一处理一样public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{doGet(request,response);}} 建议你使用日志,方便调试.在AddMessageServlet.java检测一下,String email=request.getParameter("email");String title=request.getParameter("title");String content=request.getParameter("content");的取值. 你应该在viewMessage.jsp中添加你的两个java的类!然后把这两个类放在classes文件夹里!这样就应该能调出来了! 就是log,这里有几篇好的文章。你可以看一下。<<Short introduction to log4j>>http://logging.apache.org/log4j/docs/manual.html还有车东的几篇学习笔记:Log4J学习笔记(1)http://www.infomall.cn/cgi-bin/mallgate/20040524/http://hedong.3322.org/archives/000193.htmlLog4J学习笔记(2)http://www.infomall.cn/cgi-bin/mallgate/20040524/http://hedong.3322.org/archives/000195.html Log4J学习笔记(3)http://www.infomall.cn/cgi-bin/mallgate/20040524/http://hedong.3322.org/archives/000197.htmlJakarta Commons Logging学习笔记http://www.infomall.cn/cgi-bin/mallgate/20040524/http://hedong.3322.org/archives/000316.html 在tomcat中使用bean或servlet必须放到包内! 我刚试了上面(ccc425(小蛇)朋友的方法可还是没有用啊和以前一样什么都没有啊真晕啊 怎样屏蔽aop[sql]异常,从而不影响sevice的操作 java类文件中 ,如何删掉指定的文件,比如E:\\Tomcat 5.0\\webapps\\sms\\1.xls 我不会java,哪位大哥帮我把MSSQL数据库中的图片路径调出来~~100分谢谢~~ 链接到一个jsp页面时,怎么定义这个页面的尺寸? 大家见过这样的文件吗 tomcat如何让它有错误信息 请问大虾到哪里获得别人的activeX控件有哪些方法可以调用,谢谢了 关于参数的问题 请教:如何判断JBoss启动完成? 请问jsp的入门问题。 怎么没有CSDN北京网友聚会? 刚学jsp问一个幼稚的问题,怎样得到字符串数组的长度
最后交给viewMessage.jsp页面来显示
index.html文件:
保在xujsp/index.html
<html>
<head><title>我的第一个留言板的例子</title></head>
<body>
<table width="90%" align="cnter" border=1 cellspacing=0 bordercolordark="#cccc99"
borderclorling="#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="addMessages_servlet">
<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>
<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>viewMessage.jsp文件如下:
保在xuhui/viewMessage.jsp
<%@ page import="java.sql.*,java.util.*,javax.servlet.*,javax.servlet.http.*"%>
<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=(Collection)request.getAttribute("messages");
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>
web.xml文件:
xuhui/WEB-INF/web.xml;
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"><web-app><servlet>
<servlet-name>ViewMessageServlet</servlet-name>
<servlet-class>ViewMessageServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>AddMessageServlet</servlet-name>
<servlet-class>AddMessageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ViewMessageServlet</servlet-name>
<url-pattern>/viewMessages_servlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AddMessageServlet</servlet-name>
<url-pattern>/addMessages_servlet</url-pattern>
</servlet-mapping>
</web-app>MessageVO.java文件如下:
保在xuhui/WEB-INF/classes/MessageVO.java
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;
}
}
保在xuhui/WEB-INF/classes/AddMessageServlet.javaimport javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
import java.io.*;
public class AddMessageServlet extends HttpServlet
{ private Connection con;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
String name=request.getParameter("name");
String email=request.getParameter("email");
String title=request.getParameter("title");
String content=request.getParameter("content");
if(name==null)
name="";
if(title==null)
title="";
if(content==null)
content="";
if(email==null)
email="";
try
{
PreparedStatement stm=con.prepareStatement("insert into message values(?,?,?,?,?)");
stm.setString(1,title);
stm.setString(2,name);
if(email.length()==0)
stm.setString(5,null);
else stm.setString(5,email);
stm.setDate(3,new java.sql.Date(new java.util.Date().getTime()));
stm.setString(4,content);
try
{
stm.executeQuery();
}
catch(Exception e)
{
System.out.println("xulovejsp");
} RequestDispatcher requestDispatcher = request.getRequestDispatcher("/viewMessages_servlet");
requestDispatcher.forward(request,response);
}
catch(Exception e)
{
e.printStackTrace();
}
} public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
doGet(request,response);
}
public AddMessageServlet()
{
// String CLASSFORNAME="org.gjt.mm.mysql.Driver";
// String SERVANDDB="jdbc:mysql://localhost/wrox";
// String USER="root";
// String PWD="";
try
{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost/wrox","root","");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}ViewMessageServlet.java文件如下:
保在xuhui/WEB-INF/classes/ViewMessageServlet.javaimport javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
import java.io.*;public class ViewMessageServlet extends HttpServlet
{
private Connection con;
//接收GET请求,执行数据库操作,保存结果到request中,把视图派发到下一个页面
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
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 email=result.getString("email");
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(email);
ret.add(message);
}
result.close();
stm.close();
}
//保存执行结果,把视图派发到目标
request.setAttribute("message",ret);
RequestDispatcher requestDispatcher=
request.getRequestDispatcher("/viewMessages.jsp");
requestDispatcher.forward(request,response);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//初始化到数据库的连接
public ViewMessageServlet()
{
String CLASSFORNAME="org.gjt.mm.mysql.Driver";
String SERVANDDB="jdbc:mysql://localhost/wrox";
String USER="root";
String PWD="";
try
{
Class.forName(CLASSFORNAME).newInstance();
con=DriverManager.getConnection(SERVANDDB,USER,PWD);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//和GET请求一处理一样
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
doGet(request,response);
}
}
在AddMessageServlet.java检测一下,
String email=request.getParameter("email");
String title=request.getParameter("title");
String content=request.getParameter("content");
的取值.
<<Short introduction to log4j>>
http://logging.apache.org/log4j/docs/manual.html
还有车东的几篇学习笔记:
Log4J学习笔记(1)
http://www.infomall.cn/cgi-bin/mallgate/20040524/http://hedong.3322.org/archives/000193.html
Log4J学习笔记(2)
http://www.infomall.cn/cgi-bin/mallgate/20040524/http://hedong.3322.org/archives/000195.html
Log4J学习笔记(3)
http://www.infomall.cn/cgi-bin/mallgate/20040524/http://hedong.3322.org/archives/000197.htmlJakarta Commons Logging学习笔记
http://www.infomall.cn/cgi-bin/mallgate/20040524/http://hedong.3322.org/archives/000316.html
可还是没有用啊
和以前一样
什么都没有啊真晕啊