欢迎点击「算法与编程之美」↑关注我们!
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。
我们在使用idea编写javaweb时难免会使用到MySQL(数据库)里的数据来使得页面“动”起来,但我们使用Java连接MySQL时经常会有一个类我们需要使用,这个类就是:
但是在使用tomcat服务器加载jsp文件时极有可能出现HTTP Status 500 – Internal Server Error的问题,500问题中又有三个问题,分别是时区,密码错误和无法识别MySQL的jar包,以下就是我对这三个问题的决解方案,若有错误请告知:
1 时区
第一个是时区问题,因为数据库里面都是以时间戳来存储的,所以有时本地时区会和服务器时区冲突。下图代码为错误提示:
javax.servlet.ServletException: java.sql.SQLException:The server time zone value ' й ʱ ' isunrecognized or represents more than one time zone. You must configure eitherthe server or JDBC driver (via the serverTimezone configuration property) touse a more specifc time zone value if you want to utilize time zone support.
这个问题比较好解决,主要是mysql连接出现服务器时区有问题,这时我们采用程序生成UTC时间就可以解决这一问题,代码如下:
jdbc:mysql://localhost:3306/sctu_javaweb_2018?serverTimezone=UTC
(在连接后加一句utc就可以解决时区问题,UTC是通用时区)
这样时区的问题就可以解决了。
2 密码
第二个问题就是密码问题了,有时候我们密码记错了极有可能导致我们无法访问mysql数据库,所以我们要记住我们的密码哟。
错误的代码如下,如果出现以下代码,你就只需要把你的登陆密码改一改就可以了。
javax.servlet.ServletException: java.sql.SQLException:Access denied for user 'root'@'localhost' (using password: YES)
3 Class NoFound
第三个问题就是前文提到我们所需的类tomcat无法识别,无法识别的原因是你的依赖没有建好,所以系统无法识别,这个错误的代码如下:
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
所以决解这个问题,就需要我们建好依赖,再在tomcat中重新添加这个项目,这样一般就可以识别mysql这个类了,具体操作如下:
在modules(项目模块)中选中你的项目(没有就自己加一个或就选择根目录),在右侧选择Dependencies(依赖),然后点击右侧的“+”号:
选择第一个将JARs加入你的项目,建立好项目依赖,然后在右侧选择
Artifacts:
点击如图所示小三角,接着点击Edit Configurations-->绿色加号-->如果列表里没有则-->点击33 items more irrelevant这一项后继续寻找
在右侧配置,注意配置画红线的两处:第一处是tomcat的目录地址,第二处是Java JRE地址。
再在Deployment中添加你的项目:
保存修改就可以运行了,大致可以解决tomcat无法找到jdbc。
有朋友推荐说无法识别就把tomcat加入系统环境中就可以了,这种方法没有实验过,不知可否能行,你们也许可以去试一试。
注:本文系四川旅游学院16级信息管理与信息系统专业胡干航投稿。
领取专属 10元无门槛券
私享最新 技术干货