使用IntelliJ?IDEA創(chuàng)建簡單的Java?Web項(xiàng)目完整步驟
以下是使用 IntelliJ IDEA 創(chuàng)建幾個(gè)簡單的 Java Web 項(xiàng)目的步驟,每個(gè)項(xiàng)目實(shí)現(xiàn)基本的登錄、注冊和查看列表功能,依賴 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ù)庫,并準(zhǔn)備對應(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(選擇對應(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ù)庫和表
使用 MySQL 創(chuàng)建一個(gè)簡單的 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. 實(shí)現(xiàn)功能
1. 數(shù)據(jù)庫連接工具類
在 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. 注冊功能
在 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 頁面
- 登錄頁面
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>
啟動項(xiàng)目
- 運(yùn)行 Tomcat 服務(wù)器。
- 打開瀏覽器訪問登錄頁面:
http://localhost:8080/SimpleLoginApp/login.jsp
。 - 測試注冊、登錄和查看用戶列表功能。
這樣就可以實(shí)現(xiàn)一個(gè)基礎(chǔ)的 Java Web 應(yīng)用。如果有更多需求,可以繼續(xù)擴(kuò)展!
總結(jié)
到此這篇關(guān)于使用IntelliJ IDEA創(chuàng)建簡單的Java Web項(xiàng)目的文章就介紹到這了,更多相關(guān)IDEA創(chuàng)建Java Web項(xiàng)目內(nèi)容請搜索腳本之家以前的文章或繼續(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)目注解爆紅的問題
- 使用IDEA創(chuàng)建Java Web項(xiàng)目并部署訪問的圖文教程
- 關(guān)于idea中Java Web項(xiàng)目的訪問路徑問題
- intelij?idea?2023創(chuàng)建java?web項(xiàng)目的完整步驟
相關(guān)文章
springboot集成本地緩存Caffeine的三種使用方式(小結(jié))
本文主要介紹了springboot集成本地緩存Caffeine的三種使用方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06SpringBoot-Mail工具實(shí)現(xiàn)郵箱驗(yàn)證碼登錄注冊功能
現(xiàn)在許多pc程序都有著使用郵箱驗(yàn)證碼實(shí)現(xiàn)登錄注冊的功能,那么我們應(yīng)該如何完成郵箱驗(yàn)證碼功能呢,我們可以使用springboot內(nèi)置的springboot-mail再結(jié)合redis來完成這個(gè)功能,感興趣的朋友跟隨小編一起看看吧2024-07-07Windows系統(tǒng)下Eclipse搭建ESP32編譯環(huán)境及安裝過程
Ecppse 使用了 ESP-IDF 中的 Makefile 支持。這意味著您需要從創(chuàng)建 ESP-IDF 項(xiàng)目開始。您可以使用 github 中的 idf-template 項(xiàng)目,接下來通過本文給大家介紹Windows系統(tǒng)下Eclipse搭建ESP32編譯環(huán)境及安裝過程,感興趣的朋友一起看看吧2021-10-10