Servlet未转发到另一个JSP
我有一个JSP文件Servlet未转发到另一个JSP,jsp,servlets,jdbc,Jsp,Servlets,Jdbc,我有一个JSP文件Signup.JSP,它提交给UserDetailsservlet,将用户详细信息插入数据库“tblusers”,并在成功插入数据后转发给ElecBill.JSP。它不是转发到ElecBill.jsp而是转发到Signup.jsp。换句话说,数据插入失败 以下是servlet代码: package com.elecbill; import java.io.*; import java.sql.*; import javax.servlet.http.HttpServlet;
Signup.JSP
,它提交给UserDetails
servlet,将用户详细信息插入数据库“tblusers”,并在成功插入数据后转发给ElecBill.JSP
。它不是转发到ElecBill.jsp
而是转发到Signup.jsp
。换句话说,数据插入失败
以下是servlet代码:
package com.elecbill;
import java.io.*;
import java.sql.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
public class UserDetails extends HttpServlet
{
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws javax.servlet.ServletException, IOException
{
String userid=request.getParameter("uid");
String firstname=request.getParameter("fname");
String lastname=request.getParameter("lname");
String phonenum=request.getParameter("phone");
String mobilenum=request.getParameter("mobile");
String email=request.getParameter("email");
String login=request.getParameter("loginid");
String pass=request.getParameter("pass");
String pass1=request.getParameter("pass1");
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/elecbill","root","root");
String query="insert into tblusers('"+userid+"','"+firstname+"','"+lastname+"','"+phonenum+"','"+mobilenum+"','"+email+"','"+login+"','"+pass+"','"+pass1+"')";
Statement s=conn.createStatement();
ResultSet rs=s.executeQuery("select * from tblusers");
boolean str=false;
while(rs.next())
{
if((rs.getString(6).equals(login)))
{
str=true;
}
}
if(!str)
{
s.executeUpdate(query);
HttpSession ses=request.getSession(true);
ses.setAttribute("login",login);
RequestDispatcher rq=request.getRequestDispatcher("ElecBill.jsp");
request.setAttribute("msg","Registered Successfully");
rq.forward(request,response);
System.out.println("Successfully");
}
else
{
RequestDispatcher rq=request.getRequestDispatcher("signup.jsp");
request.setAttribute("msg","Im Already in use. Choose another Id");
rq.forward(request,response);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
这个问题是如何引起的?我如何解决它?数据插入没有失败。更重要的是,根据代码流,它根本没有被执行。根据您的代码流,这只意味着用户提供的
loginid
参数与其中一个表行的第6列的值匹配
尝试提供不同的loginid
值
与具体问题无关,这段代码对具体问题非常敏感。使用。此外,在这段代码中查找现有登录ID效率非常低,因为您要将整个DB表复制到Java内存中,并用Java而不是SQL进行比较。了解如何使用,只需使用
boolean exist=resultSet.next()