servlet在刷新页面的次数中插入重复数据

时间:2015-11-24 05:44:02

标签: html5 servlets

我有一个名为“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页面仅包含欢迎消息

2 个答案:

答案 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;)而不是转发方法。