【发布时间】:2012-08-21 17:45:56
【问题描述】:
我是 JSP 和 Servlet 的新手。我在以下任务中需要您的建议。 我有一个 jsp 页面,它有一个 html 表单,它接受来自用户的一些信息。
JSP 页面 info.jsp
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<%
if(request.getAttribute("reply")!=null){
out.println(request.getAttribute("reply"));
}
%>
<form action="actionservlet" method="post" name="myform">
user Name:<input name="username" type="text" size="10" /><br />
First Name:<input name="username" type="text" size="10" /><br />
Last Name:<input name="username" type="text" size="10" /><br />
Email id:<input name="username" type="text" size="10" /><br />
<input name="submit" type="submit" value="Submit" />
<input name="Reset" type="reset" value="Reset" />
</form>
</body>
</html>
当这个客户端输入信息并提交表单时,表单中的数据被设置为 actionservlet,它检查用户输入的用户名是否 已存在于数据库中。如果用户名已经存在,那么它将数据发送回调用 jsp,并带有一个额外的属性“回复”和值为 适当的消息。即“用户已存在”,如果输入的用户名已经存在于数据库中或“用户信息保存成功!”如果数据保存成功。
我想做类似的事情每当用户输入已经存在的用户名并提交表单时,在这种情况下,所有数据都会发送回 jsp 应该填写到他们各自的文本框。因此该用户只能输入另一个用户名并再次提交此表单。 如何完成上述任务。
我正在考虑将 jsp scriplet 添加到每个文本框的 value 属性中,并检查此消息是否重播。如果回复消息是关于 重复的用户名,那么它应该将值分配给 value 属性,否则 value 属性将保持为空。但我认为这个解决方案不是最优的 因为随着表单中字段数量的增加,这个解决方案会变得有点乏味。而且我认为因此它会引起一些 某种冗余代码。 所以我想问问专家,有没有其他方法可以做到这一点。我只想在出现错误或重复消息时填写表格,而不是 当成功消息到来时。
谢谢!
【问题讨论】: