以下是使用 IntelliJ IDEA 创建几个简单的 Java Web 项目的步骤,每个项目实现基本的登录、注册和查看列表功能,依赖 Servlet/JSP 和基本的 Java Web 开发。
前置准备
- 确保安装了 IntelliJ IDEA Ultimate(社区版不支持 Web 应用)。
- 确保安装了 JDK 8 或以上版本。
- 下载并配置 Tomcat 服务器(确保 IDEA 中已配置 Tomcat)。
- 创建 MySQL 数据库,并准备对应表结构。
项目功能实现步骤
1. 创建项目
- 打开 IntelliJ IDEA,点击 File -> New -> Project。
- 在左侧选择 Java Enterprise,在右侧配置:
- 勾选 Web Application。
- 勾选 Java(选择对应的 JDK)。
- 点击 Next。
- 输入项目名称(如
SimpleLoginApp
),选择项目位置。 - 勾选 Create Web.xml 生成标准的 Web 项目结构。
- 点击 Finish。
2. 配置 Tomcat
- 点击顶部菜单的 Run -> Edit Configurations。
- 点击左上角的
+
,选择 Tomcat Server -> Local。 - 配置 Tomcat:
- 填写
Name
,如Tomcat-SimpleLoginApp
。 - 在 Application Server 中选择 Tomcat(点击 Configure 指向本地的 Tomcat 安装目录)。
- 在 Deployment 选项卡中,点击
+
,选择 Add Artifact,并添加项目的 WAR 包。
- 填写
- 点击 Apply -> OK。
3. 项目文件结构
创建后的项目基本结构如下:
SimpleLoginApp/
├── src/main/java/
│ └── com.example.controller/
│ ├── LoginServlet.java
│ ├── RegisterServlet.java
│ ├── UserListServlet.java
│ └── DatabaseConnection.java
├── src/main/resources/
├── src/main/webapp/
│ ├── WEB-INF/
│ │ ├── web.xml
│ ├── index.jsp
│ ├── login.jsp
│ ├── register.jsp
│ └── userlist.jsp
4. 创建数据库和表
使用 MySQL 创建一个简单的 user
表,用于存储用户名、密码等信息。
CREATE DATABASE simple_login_app;
USE simple_login_app;
CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100),
gender ENUM('male', 'female', 'other'),
birthday DATE
);
5. 实现功能
1. 数据库连接工具类
在 com.example.controller
包中创建 DatabaseConnection.java
:
package com.example.controller;
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseConnection {
private static final String URL = "jdbc:mysql://localhost:3306/simple_login_app";
private static final String USER = "root";
private static final String PASSWORD = "your_password";
public static Connection getConnection() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
2. 登录功能
在 com.example.controller
包中创建 LoginServlet.java
:
package com.example.controller;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
try (Connection conn = DatabaseConnection.getConnection()) {
String query = "SELECT * FROM user WHERE username = ? AND password = ?";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
request.getSession().setAttribute("username", username);
response.sendRedirect("userlist.jsp");
} else {
response.getWriter().println("<h3>Invalid username or password</h3>");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
3. 注册功能
在 com.example.controller
包中创建 RegisterServlet.java
:
package com.example.controller;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
public class RegisterServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
String gender = request.getParameter("gender");
String birthday = request.getParameter("birthday");
try (Connection conn = DatabaseConnection.getConnection()) {
String query = "INSERT INTO user (username, password, email, gender, birthday) VALUES (?, ?, ?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, username);
stmt.setString(2, password);
stmt.setString(3, email);
stmt.setString(4, gender);
stmt.setString(5, birthday);
stmt.executeUpdate();
response.sendRedirect("login.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
}
4. 查看用户列表功能
在 com.example.controller
包中创建 UserListServlet.java
:
package com.example.controller;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserListServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try (Connection conn = DatabaseConnection.getConnection()) {
String query = "SELECT * FROM user";
PreparedStatement stmt = conn.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
request.setAttribute("users", rs);
RequestDispatcher dispatcher = request.getRequestDispatcher("userlist.jsp");
dispatcher.forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
5. JSP 页面
- 登录页面
login.jsp
:
<form action="LoginServlet" method="post">
用户名: <input type="text" name="username" required><br>
密码: <input type="password" name="password" required><br>
<button type="submit">登录</button>
</form>
- 注册页面
register.jsp
:
<form action="RegisterServlet" method="post">
用户名: <input type="text" name="username" required><br>
密码: <input type="password" name="password" required><br>
邮箱: <input type="email" name="email"><br>
性别:
<select name="gender">
<option value="male">男</option>
<option value="female">女</option>
<option value="other">其他</option>
</select><br>
生日: <input type="date" name="birthday"><br>
<button type="submit">注册</button>
</form>
- 用户列表页面
userlist.jsp
:
<%@ page import="java.sql.ResultSet" %>
<%
ResultSet rs = (ResultSet) request.getAttribute("users");
%>
<table border="1">
<tr>
<th>用户名</th>
<th>邮箱</th>
<th>性别</th>
<th>生日</th>
</tr>
<%
while (rs.next()) {
%>
<tr>
<td><%= rs.getString("username") %></td>
<td><%= rs.getString("email") %></td>
<td><%= rs.getString("gender") %></td>
<td><%= rs.getDate("birthday") %></td>
</tr>
<%
}
%>
</table>
6. 配置 web.xml
<web-app>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.example.controller.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>com.example.controller.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/RegisterServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>UserListServlet</servlet-name>
<servlet-class>com.example.controller.UserListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserListServlet</servlet-name>
<url-pattern>/UserListServlet</url-pattern>
</servlet-mapping>
</web-app>
启动项目
- 运行 Tomcat 服务器。
- 打开浏览器访问登录页面:
http://localhost:8080/SimpleLoginApp/login.jsp
。 - 测试注册、登录和查看用户列表功能。
这样就可以实现一个基础的 Java Web 应用。如果有更多需求,可以继续扩展!
ps:
我承接各类软件开发项目,技术栈涵盖Python、Java(Swing、JSP)、H5、原生安卓、iOS、Web(PHP、Vue、Node)、C#、Java、C++等,能够为客户提供高效、专业的定制化软件解决方案,满足不同平台和需求的开发要求,如有需要请联系我。