我有一个名为“RegistrationForm.html”的html页面,其操作是名为“InsertRecord”的Servlet。此servlet读取表单数据并在数据库中插入记录,然后将其插入“welcome.html”页面。我的问题是,在提交表单后,我来到欢迎页面但是多次刷新这个欢迎页面,多次重复数据存储在数据库中。 有人可以帮我解决这个问题。
RegistrationForm.html(html页面)
<form action="InsertRecord" method='get'>
User Name <input type='text' name='uname'/>
<br/>
Contact <input type='tel' name='contact'/>
<br/>
<input type='submit'/>
</form>
InsertRecord.java(servlet的)
{
String userName = request.getParameter("uname");
String contact = request.getParameter("contact");
//code for DB Connection
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=sushil;user=sa; password=MultiMetal");
Statement st = con.createStatement();
st.executeUpdate("insert into tblUser (UserName, Contact) values('" + userName + "','" + contact + "')");
request.getRequestDispatcher("Welcome.html").forward(request, response);
}
Welcome.html页面仅包含欢迎消息
答案 0 :(得分:0)
您必须检查servlet中的重复数据。您的数据库中可能包含相同的数据,例如用户电子邮件,电话号码,出生日期的姓名等。首先检查记录是否已经存在然后显示您已经注册的其他插入记录
请始终在html <form>
标记中写入数据发送方法,例如
<form action="InsertRecord" method=get or post>
<强>更新强>
所以从评论中我相信你需要改变这个:
request.getRequestDispatcher("Welcome.html").forward(request, response);
要
response.sendRedirect("/welcome.html");
答案 1 :(得分:0)
我使用了response.sendRedirect(&#34; welcome.html&#34;)而不是转发方法。