一个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这导致 我刷新时又会重复添加,请问有什么解决的方法??
...全文
153 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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();
}
}
}

81,122

社区成员

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

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