使用eclipse制作 jsp,可是数据库连接总是失败

王长伟 2020-01-13 10:01:31
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/zkz";
String username = "root";
String password = "rsj50177546";
conn = DriverManager.getConnection(url, username, password);
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String pwd = request.getParameter("sfzh");
String sql = "SELECT *FROM ksxx WHERE name ='" + name + "'AND pwd = '" + pwd + "'";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if (rs.next()) {
response.sendRedirect("./login_success.jsp");
}else{
response.sendRedirect("./index.jsp");
}
%>

mysql 8数据库

错误提示:


异常报告

消息 在 [12] 行处理 [/logincheck.jsp] 时发生异常

描述 服务器遇到一个意外的情况,阻止它完成请求。

Exception
org.apache.jasper.JasperException: 在 [12] 行处理 [/logincheck.jsp] 时发生异常

9: String url = "jdbc:mysql://localhost:3306/zkz";
10: String username = "root";
11: String password = "abcdefg";
12: conn = DriverManager.getConnection(url, username, password);
13: request.setCharacterEncoding("utf-8");
14: String name = request.getParameter("name");
15: String pwd = request.getParameter("sfzh");


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:617)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


Root Cause
javax.servlet.ServletException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:909)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:838)
org.apache.jsp.logincheck_jsp._jspService(logincheck_jsp.java:145)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


Root Cause
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
com.mysql.jdbc.Util.getInstance(Util.java:387)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:917)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:896)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:885)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2330)
com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806)
com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.logincheck_jsp._jspService(logincheck_jsp.java:121)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


Root Cause
java.lang.NullPointerException
com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:2997)
com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1936)
com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1865)
com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1228)
com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806)
com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.logincheck_jsp._jspService(logincheck_jsp.java:121)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


):注意 主要问题的全部 stack 信息可以在 server logs 里查看

...全文
364 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CS_草祭先生 2020-01-16
  • 打赏
  • 举报
回复
大部分连接错误都是数据库配置问题,无论是手动敲代码还是复制过来的,都认真检查一下配置。 还有,建议楼主不要在jsp直接调用数据库。
大梦不觉、 2020-01-15
  • 打赏
  • 举报
回复
javax.servlet.ServletException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. mysql jar包版本问题,https://blog.csdn.net/weixin_41903771/article/details/85219221。
王长伟 2020-01-15
  • 打赏
  • 举报
回复
问题已经解决了,是建表时候表名称与数据访问名称不符造成的,谢谢各位朋友的帮助。刚开始学习JAVA和MYSQL数据库,过程非常圪坷,慢慢走吧。
maradona1984 2020-01-14
  • 打赏
  • 举报
回复
com.mysql.jdbc.ConnectionImpl.getServerCharset 这个地方报空指针了,看这方法名是获取server 的charset,也就是字符集,可以猜测下跟url上没有定义字符集有关,url改成试试jdbc:mysql://localhost:3306/zkz?useUnicode=true&characterEncoding=utf-8
王长伟 2020-01-14
  • 打赏
  • 举报
回复
主要配置如下所示:
王长伟 2020-01-14
  • 打赏
  • 举报
回复
嗯,我再试试其他方法,谢谢大家的帮助。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧