【发布时间】:2022-11-30 16:08:42
【问题描述】:
我正在通过 html 表单获取输入值并使用 servlet 将它们插入到数据库中,但是当我没有在 html 表单中放置任何字段时它也接受该输入。尽管我已经在输入字段的 html 代码中设置了限制。 当我尝试租用空字段时,它显示以下错误
错误
键 'users.PRIMARY 的重复条目 ''这意味着它接受用户名作为空字符串。
这是我的 html 表单
<form action="userreg" method="post">
Username : <input type="text" name="username" pattern=".{3,}" title ="must contains more then 3 letters"><br/><br/>
Password : <input type="password" name="password" placeholder="password must be 8 char long one upper, lower case letter must" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Must have 8 chars one lowercase , uppercase"><br/><br/>
FirstName: <input type="text" pattern=".{3,}" title="this field cant be empty" name="firstname"><br/><br/>
Last Name: <input type="text" pattern=".{3,}" title="this field cant be empty" name="lastname"><br/><br/>
Address : <input type="text" pattern=".{3,}" name="address"><br/><br/>
Phone No : <input type="text" pattern=".{3,}" name="phone"><br/><br/>
Email Id : <input type="text" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" name="mailid" placeholder="xyz@gmail.com" title="please enter valid mail"><br/><br/>
<input type="submit" value=" I AGREE FOR ALL TERMS & CONDITIONS ! REGISTER ME ">
</form>
这是我的用户注册 servlet 类
try {
Connection con = DBConnection.getCon();
PreparedStatement ps = con
.prepareStatement("insert into " + IUserContants.TABLE_USERS + " values(?,?,?,?,?,?,?,?)");
ps.setString(1, uName);
ps.setString(2, pWord);
ps.setString(3, fName);
ps.setString(4, lName);
ps.setString(5, addr);
ps.setString(6, phNo);
ps.setString(7, mailId);
ps.setInt(8, 2);
int k = ps.executeUpdate();
if (k==1) {
RequestDispatcher rd = req.getRequestDispatcher("Sample.html");
rd.include(req, res);
pw.println("<h3 class='tab'>User Registered Successfully</h3>");
} else {
RequestDispatcher rd = req.getRequestDispatcher("Sample.html");
pw.println("<h3 class='tab'>Registration failed !, please enter valid details</h3>");
rd.include(req, res);
pw.println("Sorry for interruption! Register again");
}
} catch (Exception e) {
e.printStackTrace();
}
【问题讨论】:
-
您是否在 html 表单上收到错误消息?
-
您如何在提交之前/提交时验证表格?是否有您正在使用的 javascript 函数或框架?