我想做一个Java(idea)+html(tomcat)+MySQL的登录小实例 打开程序后,进入浏览器,我输入了正确的用户名和密码后能显示数据库中这一条记录(用户名,密码,成绩)的全部信息, 请你把idea项目中配置tomcat,mysql的步骤,整个项目的文件夹及文件结构还有所需要的代码展示给我
时间: 2023-05-26 18:06:23 浏览: 61
我很乐意帮您完成这个小实例。
首先,我们将尝试使用Maven构建一个Java Web项目,因此,我们将使用Maven自动配置Tomcat插件和MySQL JDBC驱动程序。
以下是所需的步骤:
## 1.创建Maven项目
在idea中选择File->New->Project,选择Maven,创建一个新的 Maven 项目。
## 2.添加Tomcat插件和MySQL驱动
在pom.xml文件中添加以下依赖项:
```xml
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
</dependencies>
```
这将添加Servlet API,Tomcat Maven插件和MySQL JDBC驱动程序。
## 3.创建Tomcat Servlet
在src/main/java中创建一个包,名为“com.example”,并在其中创建一个Java类,名为“LoginServlet”。
```java
package com.example;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private DataSource dataSource;
@Override
public void init() throws ServletException {
super.init();
dataSource = (DataSource) getServletContext().getAttribute("dataSource");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
// 连接数据库
Connection conn = dataSource.getConnection();
// 准备 SQL 语句
String sql = "SELECT * FROM users WHERE username=? AND password=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
// 执行查询
ResultSet rs = ps.executeQuery();
// 输出结果
if (rs.next()) {
out.println("<html><head><title>Login Successful</title></head><body>");
out.println("<h1>Login Successful</h1>");
out.println("<ul>");
out.println("<li>Username: " + rs.getString("username") + "</li>");
out.println("<li>Password: " + rs.getString("password") + "</li>");
out.println("<li>Score: " + rs.getInt("score") + "</li>");
out.println("</ul>");
out.println("</body></html>");
} else {
out.println("<html><head><title>Login Failed</title></head><body>");
out.println("<h1>Login Failed</h1>");
out.println("</body></html>");
}
} catch (SQLException e) {
throw new ServletException("Database Error", e);
}
}
}
```
在这个Servlet中,我们将获取用户输入的用户名和密码,并从MySQL数据库中检索匹配的用户名和密码。如果有匹配的记录,则在浏览器中显示全部信息。否则,将显示“登录失败”的消息。
## 4.创建MySQL数据库
创建名为“login”的数据库,并添加一个名为“users”的表。表结构如下:
```sql
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
score INT(11) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO users (username, password, score) VALUES ('alice', 'password1', 80);
INSERT INTO users (username, password, score) VALUES ('bob', 'password2', 90);
INSERT INTO users (username, password, score) VALUES ('charlie', 'password3', 95);
```
这将创建一个包含3个用户的表,每个用户都有一个用户名,一个密码和一个成绩。
## 5.配置数据库连接池
我们将使用Apache Tomcat自带的连接池来连接MySQL数据库。
在pom.xml中添加以下依赖项:
```xml
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>9.0.35</version>
</dependency>
```
然后,在src/main/webapp/META-INF/context.xml中添加以下内容:
```xml
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/login?useSSL=false&serverTimezone=GMT"
username="root" password="password"
validationQuery="SELECT 1 FROM DUAL"/>
</Context>
```
这将配置一个名为“mysql”的连接池,该连接池连接名为“login”的MySQL数据库。
## 6.创建HTML页面
在src/main/webapp目录下创建一个index.html文件。在该文件中,我们将创建一个登录表单,以便用户输入用户名和密码。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form action="login" method="post">
<label>Username: <input type="text" name="username"></label><br>
<label>Password: <input type="password" name="password"></label><br>
<input type="submit" value="Login">
</form>
</body>
</html>
```
## 7.运行项目
现在,我们可以使用Maven构建和运行项目。为此,我们可以在命令行中导航到项目目录,并运行以下命令:
```bash
mvn clean tomcat7:run
```
这将构建项目并使用Tomcat运行该项目。可以在Web浏览器中访问http://localhost:8080/来访问项目。
输入正确的用户名和密码,即可看到MySQL数据库中的用户详细信息。
以上就是本实例的全部内容。希望这能帮助到您。