首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接jsp中的mysql数据库。

无法连接jsp中的mysql数据库。
EN

Stack Overflow用户
提问于 2015-09-01 07:47:32
回答 2查看 1.7K关注 0票数 0

我试图连接mysql数据库后,运行了web应用程序,出现了一个错误,比如: HTTP状态500 -内部服务器错误类型、异常报告消息、内部服务器错误描述服务器遇到了一个内部错误,阻碍了它完成这个请求。com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: javax.servlet.ServletException:拒绝用户‘@’localhost‘到数据库'mysqluser=root’的访问

根本原因

拒绝用户‘@’localhost‘到数据库'mysqluser=root’的mysqluser=root访问

注意,异常的完整堆栈跟踪及其根源可在GlassFish服务器开放源码版4.0日志中找到。GlassFish服务器开放源码版4.0

我的JSP代码是:

代码语言:javascript
复制
`<%@ page import ="java.sql.*" %>

<%

字符串fname = request.getParameter("fname");

代码语言:javascript
复制
`String lname = request.getParameter("lname");
`String email = request.getParameter("email");
`String user = request.getParameter("uname"); 
`String pwd = request.getParameter("pass");

Class.forName("com.mysql.jdbc.Driver");连接con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql"+ "user=root");语句st = con.createStatement();

代码语言:javascript
复制
`int i = st.executeUpdate("insert into members(first_name, last_name,email, uname, pass) values ('" + fname + "','" + lname + "','" + email + "','" + user + "','" + pwd + "')");
`if (i > 0)
`{
 `out.print("Registration Successfull!"+"<ahref='index.jsp'>Go to Login</a>");
`} 
`else {
    `response.sendRedirect("index.jsp");

} %>‘

我的数据库没有任何密码。通过以下步骤在netbeans中建立我的连接:步骤1:服务选项卡,步骤2:右键单击数据库并选择New Connection.第三步:遵循步骤。测试连接成功,然后完成。我正在使用20操作系统

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-01 07:59:59

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql"+ "user=root");语句是错误的,因为:

url"user=root"的连接将导致字符串:jdbc:mysql://localhost:3306/mysqluser=root,这是防御错误的。在url中,您缺少数据库名(如果是mysql,那么命名它就有问题,我建议您更改数据库名称)。

解决方案:

分别为url、user和password定义变量(即使未设置密码,也必须将其作为空字符串提供)。请参阅下列代码:

代码语言:javascript
复制
String url="jdbc:mysql://localhost:3306/databaseName";
String user="root";
String password="";

Connection conn = DriverManager.getConnection(url, user, password);

希望能帮上忙。

在jsp中编写db逻辑是个坏主意。最好在其他类中将用于db管理的代码外部化,并使用它获得相应的连接。

不要忘记在处理完db资源之后(我指的是关闭连接的最后一个块,PreparedStatement、ResultSet)来释放使用过的资源并避免内存泄漏。最好是编写一个分离的方法,它接受这些参数并检查它们是否为null,如果条件为真,相应的资源将被关闭。

票数 1
EN

Stack Overflow用户

发布于 2015-09-01 07:52:12

如果您没有密码登录,但是添加了argument...even字符串,您将丢失密码.并检查是否将mysql库添加到tomcat或glassfish中,如果您正在使用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32326226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档