使用JSP将Mysql与IntelliJ Ultimate 2016.2.3连接[重复]
Posted
技术标签:
【中文标题】使用JSP将Mysql与IntelliJ Ultimate 2016.2.3连接[重复]【英文标题】:Connecting Mysql with IntelliJ ultimate 2016.2.3 using JSP [duplicate] 【发布时间】:2016-09-09 09:15:47 【问题描述】:我是 JSP 和 IntelliJ IDE 的新手,当我尝试登录我的应用程序时遇到错误 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
。我在开发 JSP 项目时使用 IntelliJ 作为我的 IDE。 如何将 Mysql 连接到 JSP 项目?
下面是LoginDao.java类
package com.huza.schooldynamic;
/**
* Created by HUZY_KAMZ on 9/8/2016.
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class LoginDao
public static boolean validate(String name, String pass)
boolean status = false;
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306";
String dbName = "form";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "namungoona";
try
Class.forName(driver).newInstance();
conn = DriverManager
.getConnection(url + dbName, userName, password);
pst = conn
.prepareStatement("select * from login where user=? and password=?");
pst.setString(1, name);
pst.setString(2, pass);
rs = pst.executeQuery();
status = rs.next();
catch (Exception e)
System.out.println(e);
finally
if (conn != null)
try
conn.close();
catch (SQLException e)
e.printStackTrace();
if (pst != null)
try
pst.close();
catch (SQLException e)
e.printStackTrace();
if (rs != null)
try
rs.close();
catch (SQLException e)
e.printStackTrace();
return status;
这是我的 servlet 类 LoginServlet.java
package com.huza.schooldynamic;
/**
* Created by HUZY_KAMZ on 9/8/2016.
*/
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginServlet extends HttpServlet
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String n=request.getParameter("username");
String p=request.getParameter("userpass");
HttpSession session = request.getSession(false);
if(session!=null)
session.setAttribute("name", n);
if(LoginDao.validate(n, p))
RequestDispatcher rd=request.getRequestDispatcher("welcome.jsp");
rd.forward(request,response);
else
out.print("<p style=\"color:red\">Sorry username or password error</p>");
RequestDispatcher rd=request.getRequestDispatcher("index.jsp");
rd.include(request,response);
out.close();
这是我的 index.jsp 文件
<%--
Created by IntelliJ IDEA.
User: HUZY_KAMZ
Date: 9/8/2016
Time: 5:31 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>School Management System</title>
</head>
<body>
<br>
<br>
<br>
<center>
<form action="loginServlet" method="post">
<fieldset style="width: 300px">
<legend> Login here </legend>
<table>
<tr>
<td>User ID</td>
<td><input type="text" name="username" required="required" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="userpass" required="required" /></td>
</tr>
<tr>
<td><input type="submit" value="Login" /></td>
</tr>
</table>
</fieldset>
</form>
</center>
</body>
</html>
这是我的 welcome.jsp 文件
<%--
Created by IntelliJ IDEA.
User: HUZY_KAMZ
Date: 9/8/2016
Time: 6:00 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Welcome <%=session.getAttribute("name")%></title>
</head>
<body>
<h3>Login successful!!!</h3>
<h4>
Hello,
<%=session.getAttribute("name")%></h4>
</body>
</html>
最后这是我的 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.huza.schooldynamic.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
所以目前我试图在 IntelliJ IDE 中查看 Mysql,但似乎我不知道如何将它连接到项目,当我运行应用程序并尝试登录时,IDE 中出现此错误java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
.
下面是IDE的图片
【问题讨论】:
@Jozef Chocholacek ,在你说它重复之前,我正在使用 IntelliJ IDE 而不是 Eclipse,所以我的问题是关于连接性。所以你的意思是它们是相同的步骤 在提问之前,先学习一些基础知识,然后在 Google 上搜索java.lang.ClassNotFoundException com.mysql.jdbc.Driver web application
- 您的问题与您使用的 IDE无关。
@huxaiphaerIdris 我使用 IntelliJ。您可以尝试将 Maven 添加到您的项目中(右键单击模块并选择“添加框架”...然后选择 Maven)。然后用 Maven 添加你的 mysql 依赖,这将得到你需要的依赖。
【参考方案1】:
ClassNotFoundException
告诉您它在您的类路径中找不到类 com.mysql.jdbc.Driver
。换句话说,您在项目中定义的库 JAR 都不包含该类。
该特定类是java.sql.Driver
接口的 MySQL 特定实现。 (如果您不了解接口是什么,您可以从上面的Java tutorial's page 开始。但是您需要进一步了解它,因为接口是 OOP 的核心概念)。
你的 DAO 类说在String driver = "com.mysql.jdbc.Driver";
行中使用这个特定的潜水员。但是当代码运行时,它没有找到该名称的类。所以你需要将该类添加到你的类路径中。通过转到 Maven 中心的 Advance Search Page,您可以搜索该(或任何其他)类以确定哪些库拥有它。在这种特殊情况下,它位于 mysql-connector-java
JAR 中;最新版本为v6.0.4。
所以您需要将mysql-connector-java
JAR 添加到您的类路径中,即将它作为库添加到您的Java 项目中。你如何做到这一点取决于你如何设置你的项目。
如果你使用的是Maven,可以添加需要的依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.4</version>
</dependency>
如果您使用的是 Gradle,请添加
compile 'mysql:mysql-connector-java:6.0.4'
如果你在 Ivy 中使用 Ant,请添加
<dependency org="mysql" name="mysql-connector-java" rev="6.0.4" />
我从information page 为 maven 中心的那个 JAR 文件复制了所有这些声明。
如果您没有使用上述构建工具之一,则需要以另一种方式将 JAR 添加到您的项目中。例如,如果您只是在 IDEA 中使用 Project 配置,请转到 Project Structure (Ctrl+Shift+Shift+S / ⌘;) 并将其添加到模块中的新库。有关详细信息,请参阅 Library IntelliJ IDEA 帮助页面及其引用的页面。
【讨论】:
非常感谢@Javaru,你的回答成功了以上是关于使用JSP将Mysql与IntelliJ Ultimate 2016.2.3连接[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 Chrome 中运行 IntelliJ JSP 代码而不是显示源代码
Intellij 运行配置 Spring Boot 与 Maven 问题
使用 Intellij 10.X 和 tomcat 6.X 修改后热部署 JSP
IntelliJ 和 JSP/JSTL 无法解析 tomcat7 中 JSTL 的 taglib