这段代码有什么问题,没有得到处理,当我点击提交按钮时,它转发到这个insert.jsp并出现空白页面(结果失败)。
/*
Form.html
*/
<html>
<form method="post" action="Insert.jsp"> //form start
<table>
<tr><td>Fname:</td><td><input type="text" name="fname"></td></tr>
<tr><td>LName:</td><td><input type="text" name="lname"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td>pass:</td><td><input type="password" name="pass"></td></tr>
<tr><td>confirm pass:</td><td><input type="password" name="cpass"></td></tr>
<tr><td>dob:</td><td><input type="text" name="dob"></td></tr>
<tr><td>age:</td><td><input type="text" name="age"></td></tr>
<tr><td>gender:</td><td><input type="text" name="gender"></td></tr>
<tr><td>address:</td><td><input type="text" name="address"></td></tr>
<tr><td>country:</td><td><input type="text" name="country"></td></tr>
<tr><td>state:</td><td><input type="text" name="state"></td></tr>
<tr><td>city:</td><td><input type="text" name="city"></td></tr>
<tr><td>telephone:</td><td><input type="text" name="tno"></td></tr>
<tr><td>Mobile:</td><td><input type="text" name="mobile"></td></tr>
<tr><td></td><td><input type="submit" value="Submit"></td></tr>
</table>
</form>
</html>
/*
Insert.jsp
*/
<%@page import="java.sql.*,java.util.*"%> // import
<%
String fname=request.getParameter("fname");
String lname=request.getParameter("lname");
String email=request.getParameter("email");
String pass=request.getParameter("pass");
String cpass=request.getParameter("cpass");
String dob=request.getParameter("dob");
int age=Integer.parseInt(request.getParameter("age"));
String gender=request.getParameter("gender");
String address=request.getParameter("address");
String country=request.getParameter("country");
String state=request.getParameter("state");
String city=request.getParameter("city");
int tno=Integer.parseInt(request.getParameter("tno"));
int mobile=Integer.parseInt(request.getParameter("mobile"));
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "");
Statement st=con.createStatement();
int i=st.executeUpdate("insert into student(fname,lname,email,pass,cpass,dob,age,gender,address,country,state,city,tno,mobile) values('"+fname+"','"+lname+"','"+email+"','"+pass+"','"+cpass+"','"+dob+"','"+age+"','"+gender+"',"+address+",'"+country+"','"+state+"','"+city+"','"+city+"','"+tno+"','"+mobile+"')");
out.println("Data is successfully inserted!");
}
catch(Exception e){
System.out.print(e);
e.printStackTrace();
}
%>
答案 0 :(得分:3)
你的紧迫感不是我们的问题。
如果您引用日志消息或堆栈跟踪而不是“空白页面”和“失败”,那将更有帮助。
当您点击提交按钮时,您希望显示什么?
这是一个糟糕的设计。您的JSP中不应该有数据库代码。 Scriptlets是一个非常糟糕的主意。学习JSTL。 <sql>
标签甚至可能就是您所需要的。
更好的想法是JSP和数据库之间的servlet,它将对用户进行身份验证和授权,绑定和验证输入,代表用户执行数据库操作,将响应编组到请求或会话范围中,以及流式传输响应需要显示的页面。
我猜你想在INSERT之后显示数据库的状态,所以应该有一个显示所有值的表。你的JSP如何知道如何做到这一点?
答案 1 :(得分:3)
删除insert语句中数字类型字段的单引号。也可以更改手机号码数据类型,因为int不能容纳10位数字。
答案 2 :(得分:1)
这一切都是错的。例如,它充满了sql注入问题。还要检查您的数据库是处于自动提交模式还是开始/结束事务。
答案 3 :(得分:0)
@WebServlet(name = "signup", urlPatterns = {"/signup"})
public class signup extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String firstName = request.getParameter("firstname");
String lastName = request.getParameter("lastname");
String eMail = request.getParameter("email");
String UserName = request.getParameter("username");
String passWord = request.getParameter("password");
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
if (eMail.matches("^([a-zA-Z0-9_\\-\\.])+\\@([a-zA-Z0-9])+\\.([A-Za-z0-9]{2,4})")) {
if (passWord.matches("^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=[\\S]+$).{8,}$")) {
UserBean u = new UserBean();
u.setname(firstName);
u.setlname(lastName);
u.setemail(eMail);
u.setusername(UserName);
u.setpasswords(passWord);
UserManager umg = new UserManager();
if (umg.insertUser(u)) {
out.print("Registered Successfully");
} else {
out.print("Registration Failed");
}
} else {
out.print("<h4 style='color: red; margin-left: -66px;'>Invalid Password</h4>");
}
} else {
out.print("<h4 style='color: red; margin-left: -66px;'>Invalid Email</h4>");
}
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}