Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何解决此错误,javax.servlet.ServletException:java.sql.SQLException:未选择数据库_Jsp - Fatal编程技术网

Jsp 如何解决此错误,javax.servlet.ServletException:java.sql.SQLException:未选择数据库

Jsp 如何解决此错误,javax.servlet.ServletException:java.sql.SQLException:未选择数据库,jsp,Jsp,我是webapp开发的新手,我有这个代码login.jsp和registration.jsp这些jsp应该允许我登录和注册,但事实并非如此,我每次尝试登录或注册时都会收到这个错误消息。javax.servlet.ServletException:java.sql.SQLException:未选择任何数据库。这是我的代码,请让我知道该怎么做,纠正我哪里错了。谢谢你的帮助 CREATE TABLE `members` ( `id` int(10) unsigned NOT NULL auto_i

我是webapp开发的新手,我有这个代码login.jsp和registration.jsp这些jsp应该允许我登录和注册,但事实并非如此,我每次尝试登录或注册时都会收到这个错误消息。javax.servlet.ServletException:java.sql.SQLException:未选择任何数据库。这是我的代码,请让我知道该怎么做,纠正我哪里错了。谢谢你的帮助

CREATE TABLE `members` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `email` varchar(45) NOT NULL,
  `uname` varchar(45) NOT NULL,
  `password` varchar(45) NOT NULL,
  `passwordsignup_confirm` varchar(45) NOT NULL,
   PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

login.jsp
    <%@ page import ="java.sql.*" %>
<%
    String userid = request.getParameter("uname");
    String email = request.getParameter("emailsignup");
    String password = request.getParameter("password");
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = 
DriverManager.getConnection("jdbc:mysql://localhost:3306","root","shaddy");
    Statement st = con.createStatement();
    ResultSet rs;
    rs = st.executeQuery("select * from members WHERE uname='" + userid + "','" + email + "' and password='" + password + "'");
    if (rs.next()) {
        session.setAttribute("userid", userid);
        out.println("welcome " + userid);
        out.println("<a href='logout.jsp'>Log out</a>");
        response.sendRedirect("success.jsp");
    } else {
        out.println("Invalid password <a href='index.jsp'>try again</a>");
    }
%>


Registration.jsp
    <%@ page import ="java.sql.*" %>
<%
    String username = request.getParameter("uname");   
    String email = request.getParameter("emailsignup");
    String password = request.getParameter("password");
    String passwordsignup_confirm = request.getParameter(" passwordsignup_confirm ");
    String usernamesignup = request.getParameter("usernamesignup");
    String passwordsignup = request.getParameter("passwordsignup");
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = 
DriverManager.getConnection("jdbc:mysql://localhost:3306","root","shaddy");
    Statement st = con.createStatement();
    //ResultSet rs;
    int i = st.executeUpdate("insert into members(uname, email,  password,) values ('" + username + "','" + email + "','" +password + "','" + passwordsignup_confirm + "'");
    if (i > 0) {
        session.setAttribute("userid", username);
        response.sendRedirect("welcome.jsp");
        out.print("Registration Successfull!"+"<a href='index.jsp'>Go to Login</a>");
    } else {
        response.sendRedirect("index.jsp");
    }
%>

URL中缺少数据库名称

DriverManager.getConnection("jdbc:mysql://localhost:3306","root","shaddy");
应该是这样的,

"jdbc:mysql://localhost:3306/test","root","shaddy"
其中test是您的数据库名称

更新:

还有这个疑问,

int i = st.executeUpdate("insert into members(uname, email,  password,) values ('" + username + "','" + email + "','" +password + "','" + passwordsignup_confirm + "')");

在其中添加如上所述的大括号。

您必须在用于连接的URL中添加数据库的名称:

drivermanager.getconnection("localhost:3306/《dbname》");

希望这是有用的

圣克里斯,谢谢你的帮助!我已经添加了现在解决的数据库名称,但问题是弹出了upcom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在第1行@San Krish处使用接近'values'null','null','null','null','null'的正确语法,非常感谢我遵循了您的更新答案,现在一切都很好。欢迎您:。如果它对你有所帮助,请考虑接受答案。