一个servlet的问题

zjulcj 2004-10-08 10:09:39
req.setAttribute("message",ret);
RequestDispatcher resquestDispatcher=req.getRequestDispatcher("/viewMessages.jsp");
resquestDispatcher.forward(req,res);

该servlet的作用是用来提取数据库信息,并把它放在req.setAttribute("message",ret);中,其中ret是collection数据类型,再通过视图派送到viewMessages.jsp来显示数据,但这样做的话,其浏览器上显示的还是servlet不是viewMessages.jsp这导致 我刷新时又会重复添加,请问有什么解决的方法??
...全文
122 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjulcj 2004-10-09
bluesky35(蓝天)你试过这样有效吗
我试了一下,结果还是一样的!!!
回复
lvyuanfang 2004-10-08
我不知道你前面的代码是什么,你能不能帖出来,看一下!
回复
zjulcj 2004-10-08
这个是会覆盖,但由于这个Servlet的功能就是添加,还是会把上面的代码重新的运行一次的啊
回复
lvyuanfang 2004-10-08
forward()方法就是这样,你调用之后url地址栏还是出现的是你的servlet的路径而不是你forward()的jsp网页路径,刷新之后应该是ret覆盖原来request中的message,而不是重复添加。
回复
lvyuanfang 2004-10-08
不明白bluesky35(蓝天) 说的有什么用??
回复
bluesky35 2004-10-08
不要用赋值语句
resquestDispatcher=req.getRequestDispatcher("/viewMessages.jsp");
resquestDispatcher.forward(req,res);

直接用
request.getRequestDispatcher("/viewMessages.jsp").forward(request,response);
就可以跳转过去.
回复
bluesky35 2004-10-08
request.getRequestDispatcher("/viewMessages.jsp").forward(request,response);
试试,应该不会有问题的.
回复
lvyuanfang 2004-10-08
没有这句req.setAttribute("message",ret);
照你的代码,应该不会的,因为你得getparamter(),如果刷新这个servlet的话,应该取不到 String name=request.getParameter("name");
String email=request.getParameter("email");
String title=request.getParameter("title");
String content=request.getParameter("content");
这些值呀!
回复
zjulcj 2004-10-08
public class AddMessageServlet extends HttpServlet
{
private Connection conn;

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");

try
{
String sql="insert into message(Name,Email,Title,UpdateTime,Content) values (?,?,?,?,?)";
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setString(1,name);
pstm.setString(2,email);
pstm.setString(3,title);
pstm.setDate(4,new java.sql.Date(new java.util.Date().getTime()));
pstm.setString(5,content);
pstm.executeUpdate();

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 sDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnstr="jdbc:odbc:data";
try
{
Class.forName(sDriver);
conn=DriverManager.getConnection(sConnstr);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告