学习视频里面用eclipse搭建的用户管理系统项目,我自己在IDEA里面搭建,tomcat启动之后(我用的自己官网下的tomcat,不是IDEA自带的),却连不上数据库:
@WebServlet(name = "LoginDealwithServlet")
public class LoginDealwithServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("utf-8");
//接收用户提交的用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
// System.out.println("获得输入");
//到数据库验证
Connection ct = null;
ResultSet rs = null;
PreparedStatement ps = null;
// System.out.println("准备连上数据库了");
try{
//加载驱动得到连接,创建preparedStatemen,执行操作,根据结果处理
// System.out.println("加载驱动");
Class.forName("com.mysql.cj.jdbc.Driver");
// System.out.println("得到连接");
ct= DriverManager.getConnection("jdbc:mysql://localhost:3306/usermanager?useSSL=false&serverTimezone=UTC","******","*****");//?useSSL=false&serverTimezone=UTC
// System.out.println("连上数据库了");
ps=ct.prepareStatement("select * from user where username = ? and password = ?");
ps.setString(1,username);
ps.setString(2,password);
rs=ps.executeQuery();
if(rs.next()){
User user = new User();
user.setName(username);
user.setPwd(password);
request.setAttribute("userobj",user); request.getRequestDispatcher("/MainFrame").forward(request,response);
// System.out.println("连上数据库了");
}else{
request.setAttribute("err","用户名或密码有误"); request.getRequestDispatcher("/LoginServlet").forward(request,response);
}
}catch (Exception e){
//handle exception
System.out.println("出现异常");
}finally {
//关闭资源
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}}
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}}
if(ct!=null){
try {
ct.close();
} catch (SQLException e) {
e.printStackTrace();
}}
}
//本地验证
// if("123".equals(password)){
// response.sendRedirect("/UserManager/MainFrame");
// //request.getSession().setAttribute("username",username);
// User user = new User();
// user.setName(username);
// user.setPwd(password);
// request.getSession().setAttribute("userobj",user);
// }else{
// response.sendRedirect("/UserManager/LoginServlet");
// }
}
浏览器登录验证之后,控制台一直报“出现异常”,一直无法“得到连接”。
查看网上贴吧之后,自己操作一波发现:
需要在IDEA的WEB工程web根目录下创建一个lib,并在里面添加相应数据库的JDBC的jar包,如下图所示
而在Eclipse下却不用…用IDEA创建的springboot项目也不用…
转贴吧另外一个解决方案:
你可以在web-info文件夹下,创建目录lib,
然后将你需要在服务器上使用的jar包,复制到里面。
在配置项目的依赖,ctrl+alt+shift+s 打开项目设置,
选择Moudles–>右侧Dependencies–>右侧小加号选择1.Jar or Directories
选择你当前项目下的web-info下的lib目录。apply即可
单纯的放到tomcat的lib目录下的话,如果换台机器,其他机器上的tomcat没有你的jdbc驱动,那你的程序就跑不起来啦。 因为是从tomcat的classpath下启动jar包驱动,和你程序上传到服务器自带的驱动在使用上还是有点区别的。