使用IntelliJ?IDEA創(chuàng)建簡(jiǎn)單的Java?Web項(xiàng)目完整步驟
以下是使用 IntelliJ IDEA 創(chuàng)建幾個(gè)簡(jiǎn)單的 Java Web 項(xiàng)目的步驟,每個(gè)項(xiàng)目實(shí)現(xiàn)基本的登錄、注冊(cè)和查看列表功能,依賴 Servlet/JSP 和基本的 Java Web 開發(fā)。
前置準(zhǔn)備
- 確保安裝了 IntelliJ IDEA Ultimate(社區(qū)版不支持 Web 應(yīng)用)。
- 確保安裝了 JDK 8 或以上版本。
- 下載并配置 Tomcat 服務(wù)器(確保 IDEA 中已配置 Tomcat)。
- 創(chuàng)建 MySQL 數(shù)據(jù)庫(kù),并準(zhǔn)備對(duì)應(yīng)表結(jié)構(gòu)。
項(xiàng)目功能實(shí)現(xiàn)步驟
1. 創(chuàng)建項(xiàng)目
- 打開 IntelliJ IDEA,點(diǎn)擊 File -> New -> Project。
- 在左側(cè)選擇 Java Enterprise,在右側(cè)配置:
- 勾選 Web Application。
- 勾選 Java(選擇對(duì)應(yīng)的 JDK)。
- 點(diǎn)擊 Next。
- 輸入項(xiàng)目名稱(如
SimpleLoginApp),選擇項(xiàng)目位置。 - 勾選 Create Web.xml 生成標(biāo)準(zhǔn)的 Web 項(xiàng)目結(jié)構(gòu)。
- 點(diǎn)擊 Finish。
2. 配置 Tomcat
- 點(diǎn)擊頂部菜單的 Run -> Edit Configurations。
- 點(diǎn)擊左上角的
+,選擇 Tomcat Server -> Local。 - 配置 Tomcat:
- 填寫
Name,如Tomcat-SimpleLoginApp。 - 在 Application Server 中選擇 Tomcat(點(diǎn)擊 Configure 指向本地的 Tomcat 安裝目錄)。
- 在 Deployment 選項(xiàng)卡中,點(diǎn)擊
+,選擇 Add Artifact,并添加項(xiàng)目的 WAR 包。
- 填寫
- 點(diǎn)擊 Apply -> OK。
3. 項(xiàng)目文件結(jié)構(gòu)
創(chuàng)建后的項(xiàng)目基本結(jié)構(gòu)如下:
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. 創(chuàng)建數(shù)據(jù)庫(kù)和表
使用 MySQL 創(chuàng)建一個(gè)簡(jiǎn)單的 user 表,用于存儲(chǔ)用戶名、密碼等信息。
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. 實(shí)現(xiàn)功能
1. 數(shù)據(jù)庫(kù)連接工具類
在 com.example.controller 包中創(chuàng)建 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 包中創(chuàng)建 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. 注冊(cè)功能
在 com.example.controller 包中創(chuàng)建 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 包中創(chuàng)建 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 頁(yè)面
- 登錄頁(yè)面
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>
- 注冊(cè)頁(yè)面
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">注冊(cè)</button>
</form>
- 用戶列表頁(yè)面
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>
啟動(dòng)項(xiàng)目
- 運(yùn)行 Tomcat 服務(wù)器。
- 打開瀏覽器訪問(wèn)登錄頁(yè)面:
http://localhost:8080/SimpleLoginApp/login.jsp。 - 測(cè)試注冊(cè)、登錄和查看用戶列表功能。
這樣就可以實(shí)現(xiàn)一個(gè)基礎(chǔ)的 Java Web 應(yīng)用。如果有更多需求,可以繼續(xù)擴(kuò)展!
總結(jié)
到此這篇關(guān)于使用IntelliJ IDEA創(chuàng)建簡(jiǎn)單的Java Web項(xiàng)目的文章就介紹到這了,更多相關(guān)IDEA創(chuàng)建Java Web項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- IDEA 2021配置JavaWeb項(xiàng)目超詳細(xì)教程
- 2023最新版IDEA創(chuàng)建javaweb項(xiàng)目的詳細(xì)圖文教程
- InterlliJ IDEA2020新建java web項(xiàng)目找不到Static Web的解決
- IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟記錄
- 解決IDEA導(dǎo)入javaWeb項(xiàng)目注解爆紅的問(wèn)題
- 使用IDEA創(chuàng)建Java Web項(xiàng)目并部署訪問(wèn)的圖文教程
- 關(guān)于idea中Java Web項(xiàng)目的訪問(wèn)路徑問(wèn)題
- intelij?idea?2023創(chuàng)建java?web項(xiàng)目的完整步驟
相關(guān)文章
springboot集成本地緩存Caffeine的三種使用方式(小結(jié))
本文主要介紹了springboot集成本地緩存Caffeine的三種使用方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
SpringBoot-Mail工具實(shí)現(xiàn)郵箱驗(yàn)證碼登錄注冊(cè)功能
現(xiàn)在許多pc程序都有著使用郵箱驗(yàn)證碼實(shí)現(xiàn)登錄注冊(cè)的功能,那么我們應(yīng)該如何完成郵箱驗(yàn)證碼功能呢,我們可以使用springboot內(nèi)置的springboot-mail再結(jié)合redis來(lái)完成這個(gè)功能,感興趣的朋友跟隨小編一起看看吧2024-07-07
Windows系統(tǒng)下Eclipse搭建ESP32編譯環(huán)境及安裝過(guò)程
Ecppse 使用了 ESP-IDF 中的 Makefile 支持。這意味著您需要從創(chuàng)建 ESP-IDF 項(xiàng)目開始。您可以使用 github 中的 idf-template 項(xiàng)目,接下來(lái)通過(guò)本文給大家介紹Windows系統(tǒng)下Eclipse搭建ESP32編譯環(huán)境及安裝過(guò)程,感興趣的朋友一起看看吧2021-10-10

