以下是使用 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 {@Overrideprotected 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 {@Overrideprotected 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 {@Overrideprotected 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++等,能够为客户提供高效、专业的定制化软件解决方案,满足不同平台和需求的开发要求,如有需要请联系我。