我使用servlets和jsp创建了两个网页。在第一页中,用户输入他的名字,姓氏和手机号码并提交。然后我重定向到显示用户输入的详细信息的下一页。我必须提供一个“编辑”按钮,以便用户可以编辑同一页面中的值。(第二页)。我怎么做?
答案 0 :(得分:1)
你可以用两种方式做到这一点。两种选择的第一部分是相同的:
第一页允许您使用表单输入用户数据;
与表单操作相对应的servlet执行如下操作:
public void doPost(HttpServletRequest request,HttpServletResponse response){
//获取参数
String name = request.getParameters(“name”); String surname = request.getParameters(“surname”); ...
//对收到的参数进行一些验证 ...
//创建用户对象 用户user =新用户(名称,用户名);
//将其存储在HttpSession
中request.getSession(true).setAttribute(“user”,user);
//转发查看 RequestDispatcher dispatcher = request.getRequestDispatcher(“目标资源依赖于scenaro。见下文”);
dispatcher.forward(请求,响应);
}
完成流程的两种方法之间的区别在于第二个jsp。基本上
1)没有第二个jsp,servlet再次转发到包含表单的jsp:在这种情况下,不同之处在于,您将在之前提交的textfields值中看到而不是空白表单。请注意,您必须更改第一个jsp,以便在会话中找到“user”对象时显示这些值。 另外,正如您所看到的,在这种情况下,您不需要“编辑”按钮,因为用户可以直接更改文本字段。无论如何,如果你想要,如果“user”实例在会话中(即用户已插入数据)你可以显示那些禁用的文本域,编辑按钮可以允许它们允许修改(使用简单的javascript)。
2)第二个jsp不包含表单,只包含标签,因此用户插入的“只读”视图。在这种情况下,servlet转发到第二个jsp。 “编辑”按钮可以简单地重定向到第一个jsp。同样在这种情况下,您应该使用之前描述的相同更改来更改此页面(第一个jsp)。所以基本上
如上所述,对于这两种方法都有效,使用会话允许您重新显示第一个jsp,其中包含在验证错误的情况下输入的数据,避免用户重新键入所有信息(这非常繁琐)