为了账号安全,请及时绑定邮箱和手机立即绑定

Java Web项目学习:新手入门指南

标签:
Java WebApp SSM
概述

本文介绍了Java Web项目学习的各个方面,包括开发环境搭建、基础概念、核心技术以及实战案例,帮助读者全面了解和掌握Java Web项目的开发流程。

Java Web开发简介

什么是Java Web开发

Java Web开发是一种利用Java语言、Servlet技术、JSP(JavaServer Pages)及其他相关技术进行Web应用开发的技术。Java Web开发的主要目的是构建动态的Web应用程序,这些应用程序可以在服务器端执行Java代码,生成动态的HTML内容,从而提供更加丰富和交互性的用户体验。

Java Web开发的核心技术包括Servlet容器、JSP、JavaServer Faces(JSF)、JavaServer Pages Standard Tag Library(JSTL)、Java Persistence API(JPA)等。通过这些技术,开发者可以创建可扩展、可维护的Web应用,以满足各种业务需求。

Java Web开发的基本概念

Java Web开发涉及多个核心组件和技术,主要包括以下几种:

  1. Servlet

    • Servlet是运行在服务器端的Java类,用于处理客户端(通常是Web浏览器)的请求,并生成响应。Servlet容器(如Tomcat)负责加载Servlet类,处理请求,并将结果发送给客户端。
    • Servlet的主要作用是接收HTTP请求,处理请求,生成响应,并将响应发送回客户端。
    • Servlet可以实现Web应用程序中的业务逻辑、数据库访问等功能。
  2. JSP(JavaServer Pages)

    • JSP是一种服务器端编程技术,允许在HTML文档中嵌入Java代码,以生成动态的Web内容。
    • JSP页面本质上是一个Servlet,但其编写方式更接近于HTML,使得前端开发人员和后端开发人员可以更方便地协作。
    • JSP页面中可以嵌入Java脚本、JSP标签和JSP指令,实现页面的动态生成。
  3. JSTL(JavaServer Pages Standard Tag Library)

    • JSTL是一个标准的标签库,提供了一套常用的标签,用于简化在JSP页面中处理循环、条件判断、数据库操作等任务。
    • JSTL标签库被分为几个部分,包括核心标签库、格式化标签库、SQL标签库等。
  4. EL表达式(Expression Language)

    • EL表达式是一种在JSP页面中使用的表达式语言,用于访问JavaBean对象、数组、Map等数据结构中的属性。
    • EL表达式与JSTL标签库结合使用,可以实现更复杂的功能和逻辑。
    • 基本语法为 ${expression} ,如 ${user.name} 表示访问用户对象的name属性。
  5. 过滤器(Filter)
    • 过滤器用于在请求到达Servlet或资源之前进行预处理,或在响应到达客户端之前进行后处理。
    • 过滤器可以用于实现如数据加密、内容编码、用户认证等通用功能。

Java Web开发的优势和应用场景

Java Web开发有许多优势,使其成为开发动态Web应用的首选技术:

  1. 跨平台性

    • Java具有“一次编写,到处运行”的特性,这意味着开发的Java Web应用可以在多种操作系统上运行,无需重新编译。
  2. 丰富的库和工具支持

    • Java拥有大量的开源库和框架(如Spring、Hibernate等),这些库和框架可以帮助开发者快速开发高效、可靠的应用程序。
    • 各种IDE(如IntelliJ IDEA、Eclipse)提供了强大的开发工具,支持智能代码补全、代码重构等功能。
  3. 安全性

    • Java Web应用具备较强的安全性,支持多种身份验证和授权机制,确保应用程序的安全性。
    • Java EE提供了多种安全机制,如容器安全、SSL加密等。
  4. 可扩展性
    • Java Web应用可以轻松地添加新的功能模块,保持系统的可扩展性。
    • 通过模块化的设计,可以实现各个组件的独立部署和升级,提高系统的灵活性和可维护性。

应用场景包括但不限于电子商务网站、企业内部管理系统、社交网络、在线教育平台等。Java Web开发技术广泛应用于各种规模的应用程序中,适用于需要动态生成内容、用户交互和数据库操作的场景。

开发环境搭建

安装JDK

Java开发工具包(JDK)是运行和开发Java应用程序的必需组件。以下是安装JDK的步骤:

  1. 访问Oracle官方网站或其他镜像站点下载最新版本的JDK。下载地址为:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html(注意选择对应的平台版本)。
  2. 运行下载的安装程序,按照向导完成安装。默认情况下,安装程序会将JDK安装到C:\Program Files\Java\jdk-版本号路径下。
  3. 添加JDK的bin目录到系统环境变量PATH中。这可以通过系统设置完成:

    • 右键点击“此电脑”或“计算机”图标,选择“属性”。
    • 点击“高级系统设置”,在“系统属性”窗口中点击“环境变量”按钮。
    • 在“系统变量”部分,找到并选择Path变量,然后点击“编辑”。
    • 在“编辑环境变量”窗口中,点击“新建”,添加JDK的bin目录路径(例如C:\Program Files\Java\jdk-版本号\bin)。
    • 点击“确定”保存设置并关闭窗口。
  4. 验证安装:打开命令提示符(CMD),输入命令java -version,如果显示了JDK的版本信息,说明安装成功。

安装并配置Tomcat服务器

Apache Tomcat是一个开源的Web服务器,用于运行Java应用程序。以下是安装Tomcat的步骤:

  1. 访问Apache Tomcat官方网站下载最新版本的Tomcat。下载地址为:https://tomcat.apache.org/
  2. 解压下载的压缩包到一个合适的目录,例如C:\Tomcat
  3. 设置环境变量CATALINA_HOME,指向Tomcat的安装目录:
    • 在系统变量中增加CATALINA_HOME,设置值为C:\Tomcat
    • 确保PATH中包含Tomcat的bin目录,如C:\Tomcat\bin
  4. 配置Tomcat的conf/server.xml文件,以允许远程访问。找到<Connector>标签,确认其配置如下:
    <Connector port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443"
              address="0.0.0.0"/>

    注意:address="0.0.0.0"表示Tomcat将监听所有网络接口。如果需要特定IP地址,可以修改为具体的IP地址。

  5. 启动Tomcat服务器。可以双击C:\Tomcat\bin\startup.bat文件,或者在命令行中执行该命令。
    • 打开浏览器,访问http://localhost:8080,如果看到Tomcat的默认欢迎页面,说明安装成功。

安装并配置IDE(如IntelliJ IDEA或Eclipse)

为了方便开发Java Web项目,推荐使用集成开发环境(IDE)。以下是安装并配置IDE的步骤:

IntelliJ IDEA

  1. 访问JetBrains官方网站,下载IntelliJ IDEA的社区版。下载地址:https://www.jetbrains.com/idea/download/
  2. 安装IntelliJ IDEA,并按照安装向导完成安装。
  3. 打开IntelliJ IDEA,选择“File” -> “New” -> “Project”。
  4. 在“New Project”窗口中,选择“Java EE”,然后选择“Web Application”,选择Java版本和Tomcat版本,点击“Finish”。
  5. 创建完成后,可以在项目视图中看到Web应用的基本结构,包括WEB-INF目录、web.xml等配置文件。
  6. 配置IDE与Tomcat服务器的连接:
    • 打开“File” -> “Edit Configurations”,点击+按钮添加一个新的Tomcat Server配置。
    • 在“Server”选项卡中,填写服务器名称(如MyTomcat),指定服务器路径为C:\Tomcat
    • 点击“Apply”保存设置。

Eclipse

  1. 访问Eclipse官方网站,下载Eclipse的集成JDT插件版本。下载地址:https://www.eclipse.org/downloads/
  2. 安装Eclipse,并按照安装向导完成安装。
  3. 打开Eclipse,选择“File” -> “New” -> “Dynamic Web Project”。
  4. 在“New Dynamic Web Project”窗口中,填写项目名称(如MyWebApp),选择Java版本,然后点击“Finish”。
  5. 创建完成后,可以在项目视图中看到Web应用的基本结构,包括src目录、web.xml等配置文件。
  6. 配置Eclipse与Tomcat服务器的连接:
    • 选择“Window” -> “Preferences”,在“Server” -> “Runtime Environments”中添加Tomcat服务器,选择C:\Tomcat作为服务器路径。
    • 选择“Window” -> “Show View” -> “Servers”,点击“New”添加一个新的服务器,选择Tomcat,并配置对应的路径。

Java Web项目基础

创建第一个Java Web项目

创建Java Web项目的步骤如下:

  1. 打开IDE(如IntelliJ IDEA或Eclipse)。
  2. 创建新项目,如果是IntelliJ IDEA,选择“File” -> “New” -> “Project”,然后选择“Java EE” -> “Web Application”。如果是Eclipse,选择“File” -> “New” -> “Dynamic Web Project”。
  3. 输入项目名称(如FirstWebApp),选择Java版本(如Java 11),选择目标运行时环境(如Tomcat 9),然后点击“Next”。
  4. 确认项目设置,如果需要,选择项目存放的位置,然后点击“Finish”。

项目创建完成后,IDE会自动生成基本的项目结构,如下所示:

FirstWebApp
│   .idea/
│   .project
│   .settings/
│   pom.xml
│   src/
│       main/
│           java/
│           resources/
│           webapp/
│               WEB-INF/
│                   web.xml
│               index.jsp
│               hello.jsp
└───.gitignore

Web应用目录结构介绍

Java Web项目的目录结构通常如下:

  1. src/main/java
    • 存放应用程序的Java源代码,比如Servlet、JavaBean类等。
  2. src/main/resources
    • 存放项目的资源文件,如配置文件等。
  3. src/main/webapp
    • 存放Web应用的静态资源,如HTML文件、CSS样式表、JavaScript脚本等。
    • WEB-INF:存放Web应用的配置文件和类文件。
      • web.xml:Web应用的部署描述符文件,用于配置Servlet、过滤器、监听器等。
  4. pom.xml
    • Maven项目管理工具的配置文件,用于管理项目的依赖关系。
  5. .idea.settings
    • IntelliJ IDEA的项目配置文件,用于保存IDE的设置。
  6. .project.classpath
    • Eclipse的项目配置文件,用于保存项目设置和类路径。

HTML、CSS和JavaScript基础

HTML、CSS和JavaScript是Web开发的基本组成部分,用于构建Web页面以及提供交互性。

  1. HTML(HyperText Markup Language)

    • HTML是Web页面的基础,用于定义页面的结构和内容。
    • 示例代码:
      <!DOCTYPE html>
      <html>
      <head>
       <title>我的第一个页面</title>
       <link rel="stylesheet" href="styles.css">
      </head>
      <body>
       <header>
           <h1>欢迎来到我的主页</h1>
       </header>
       <nav>
           <ul>
               <li><a href="#home">首页</a></li>
               <li><a href="#about">关于</a></li>
           </ul>
       </nav>
       <main>
           <p>这是一个简单的HTML页面。</p>
       </main>
       <footer>
           <p>版权所有 © 2023</p>
       </footer>
      </body>
      </html>
  2. CSS(Cascading Style Sheets)

    • CSS用于定义HTML元素的样式,如字体、颜色、布局等。
    • 示例代码:

      body {
       font-family: Arial, sans-serif;
       background-color: #f0f0f0;
      }
      
      header {
       background-color: #333;
       color: white;
       padding: 10px;
      }
      
      nav ul {
       list-style-type: none;
       padding: 0;
      }
      
      nav ul li a {
       color: #333;
       padding: 10px;
       text-decoration: none;
      }
      
      main {
       padding: 20px;
      }
      
      footer {
       background-color: #333;
       color: white;
       text-align: center;
       padding: 10px;
      }
  3. JavaScript
    • JavaScript是一种脚本语言,用于实现Web页面的交互性。
    • 示例代码:
      document.querySelector('#myButton').addEventListener('click', function() {
       alert('Hello, World!');
      });

Java Web开发核心技术

Servlet和JSP的基本使用

Servlet是Java Web应用的核心组件,用于处理HTTP请求。JSP(JavaServer Pages)则是一种动态生成Web内容的机制,可以让开发人员在HTML中嵌入Java代码。

  1. Servlet

    • 创建一个简单的Servlet:

      import javax.servlet.ServletException;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      
      public class HelloWorldServlet extends HttpServlet {
       @Override
       protected void doGet(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
           response.setContentType("text/html");
           response.setCharacterEncoding("UTF-8");
           response.getWriter().println("<h1>Hello, World!</h1>");
       }
      }
    • 配置web.xml文件,指定Servlet的映射:
      <web-app>
       <servlet>
           <servlet-name>HelloWorldServlet</servlet-name>
           <servlet-class>com.example.servlet.HelloWorldServlet</servlet-class>
       </servlet>
       <servlet-mapping>
           <servlet-name>HelloWorldServlet</servlet-name>
           <url-pattern>/hello</url-pattern>
       </servlet-mapping>
      </web-app>
  2. JSP

    • 创建一个JSP页面:
      <%-- 定义JSP页面 --%>
      <%! String message = "Hello, World!"; %>
      <html>
      <head>
       <title>我的第一个JSP页面</title>
      </head>
      <body>
       <h1><%= message %></h1>
      </body>
      </html>
    • 在JSP页面中使用JSP标签:
      <%-- 定义变量 --%>
      <%
       String name = "张三";
      %>
      <html>
      <head>
       <title>我的第一个JSP页面</title>
      </head>
      <body>
       <h1>你好,<%= name %>!</h1>
      </body>
      </html>
  3. JSTL标签库的使用

    • 配置JSTL标签库:
      <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    • 使用JSTL标签:
      <html>
      <head>
       <title>JSTL标签库示例</title>
      </head>
      <body>
       <h1>循环示例</h1>
       <ul>
           <c:forEach var="i" begin="1" end="5">
               <li>${i}</li>
           </c:forEach>
       </ul>
      </body>
      </html>
  4. EL表达式和JSP指令
    • 使用EL表达式访问JavaBean属性:
      <html>
      <head>
       <title>EL表达式示例</title>
      </head>
      <body>
       <h1>你好,${user.name}!</h1>
      </body>
      </html>
    • 使用JSP指令配置页面:
      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      <%@ page import="com.example.model.User" %>
      <% User user = new User(); %>
      <html>
      <head>
       <title>JSP指令示例</title>
      </head>
      <body>
       <h1>你好,${user.name}!</h1>
      </body>
      </html>

数据库连接与操作

使用JDBC连接数据库

Java Database Connectivity (JDBC) 是Java语言的数据库访问接口,允许Java程序访问各种关系数据库系统。以下是通过JDBC连接MySQL数据库的步骤:

  1. 下载并配置MySQL JDBC驱动

  2. 编写连接代码

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class DatabaseConnection {
       private static final String DB_URL = "jdbc:mysql://localhost:3306/mydb";
       private static final String USER = "root";
       private static final String PASS = "password";
    
       public static Connection getConnection() throws SQLException {
           return DriverManager.getConnection(DB_URL, USER, PASS);
       }
    }

数据库操作(增删改查)

通过JDBC可以执行SQL语句,实现对数据库的增删改查操作。

  1. 插入数据

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class InsertData {
       public static void main(String[] args) {
           try (Connection conn = DatabaseConnection.getConnection()) {
               String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
               PreparedStatement stmt = conn.prepareStatement(sql);
               stmt.setString(1, "张三");
               stmt.setString(2, "zhangsan@example.com");
               stmt.executeUpdate();
               System.out.println("数据插入成功");
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
    }
  2. 查询数据

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class SelectData {
       public static void main(String[] args) {
           try (Connection conn = DatabaseConnection.getConnection()) {
               String sql = "SELECT * FROM users WHERE name = ?";
               PreparedStatement stmt = conn.prepareStatement(sql);
               stmt.setString(1, "张三");
               ResultSet rs = stmt.executeQuery();
               while (rs.next()) {
                   System.out.println("Name: " + rs.getString("name") + ", Email: " + rs.getString("email"));
               }
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
    }
  3. 更新数据

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class UpdateData {
       public static void main(String[] args) {
           try (Connection conn = DatabaseConnection.getConnection()) {
               String sql = "UPDATE users SET email = ? WHERE name = ?";
               PreparedStatement stmt = conn.prepareStatement(sql);
               stmt.setString(1, "zhangsan_new@example.com");
               stmt.setString(2, "张三");
               stmt.executeUpdate();
               System.out.println("数据更新成功");
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
    }
  4. 删除数据

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class DeleteData {
       public static void main(String[] args) {
           try (Connection conn = DatabaseConnection.getConnection()) {
               String sql = "DELETE FROM users WHERE name = ?";
               PreparedStatement stmt = conn.prepareStatement(sql);
               stmt.setString(1, "张三");
               stmt.executeUpdate();
               System.out.println("数据删除成功");
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
    }

数据库事务管理

数据库事务确保了一组操作要么全部执行成功,要么全部执行失败。JDBC支持通过Connection对象的setAutoCommit方法来管理事务。

  1. 手动控制事务

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class TransactionExample {
       public static void main(String[] args) {
           try (Connection conn = DatabaseConnection.getConnection()) {
               // 禁用自动提交
               conn.setAutoCommit(false);
    
               // 插入数据
               String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
               PreparedStatement stmt = conn.prepareStatement(sql);
               stmt.setString(1, "李四");
               stmt.setString(2, "lisi@example.com");
               stmt.executeUpdate();
    
               // 提交事务
               conn.commit();
               System.out.println("事务提交成功");
    
               // 模拟异常
               stmt = conn.prepareStatement("INSERT INTO users (name, email) VALUES (?, ?)");
               stmt.setString(1, "王五");
               stmt.setString(2, "wuwu@example.com");
               stmt.executeUpdate();
    
               // 模拟异常,引发事务回滚
               throw new RuntimeException("模拟异常");
    
               // 提交事务
               conn.commit();
           } catch (SQLException e) {
               e.printStackTrace();
               // 回滚事务
               try {
                   DatabaseConnection.getConnection().rollback();
               } catch (SQLException ex) {
                   ex.printStackTrace();
               }
           }
       }
    }

实战案例:简单博客系统

需求分析和项目规划

简单博客系统的需求包括以下几个主要功能:

  1. 用户注册和登录
    • 用户可以注册账号,输入用户名、密码、邮箱等信息。
    • 用户可以登录系统,通过用户名和密码进行身份验证。
  2. 文章发布和展示
    • 用户登录后可以发布新的文章,输入文章标题和内容。
    • 用户可以浏览所有文章,查看文章标题和摘要。
  3. 文章评论
    • 用户可以对文章进行评论,输入评论内容。
    • 用户可以查看文章的评论列表。

用户注册与登录功能实现

用户注册与登录功能是博客系统的基础功能,用户需要先注册才能使用系统中的其他功能。

  1. 用户注册

    • 创建一个用户注册页面,允许用户输入注册信息。
    • 后端处理注册请求,将用户信息保存到数据库。
    • 示例代码:

      <%@ page import="java.sql.*" %>
      <html>
      <head>
       <title>用户注册</title>
      </head>
      <body>
       <form action="RegisterServlet" method="post">
           用户名:<input type="text" name="username" required><br>
           密码:<input type="password" name="password" required><br>
           邮箱:<input type="email" name="email" required><br>
           <input type="submit" value="注册">
       </form>
      </body>
      </html>
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.SQLException;
      
      public class UserRegistration {
       public static void registerUser(String username, String password, String email) throws SQLException {
           String sql = "INSERT INTO users (username, password, email) VALUES (?, ?, ?)";
           try (Connection conn = DatabaseConnection.getConnection();
                PreparedStatement stmt = conn.prepareStatement(sql)) {
               stmt.setString(1, username);
               stmt.setString(2, password);
               stmt.setString(3, email);
               stmt.executeUpdate();
           }
       }
      }
  2. 用户登录

    • 创建一个用户登录页面,允许用户输入用户名和密码。
    • 后端处理登录请求,验证用户信息。
    • 示例代码:

      <%@ page import="java.sql.*" %>
      <html>
      <head>
       <title>用户登录</title>
      </head>
      <body>
       <form action="LoginServlet" method="post">
           用户名:<input type="text" name="username" required><br>
           密码:<input type="password" name="password" required><br>
           <input type="submit" value="登录">
       </form>
      </body>
      </html>
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      
      public class UserLogin {
       public static boolean validateUser(String username, String password) throws SQLException {
           String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
           try (Connection conn = DatabaseConnection.getConnection();
                PreparedStatement stmt = conn.prepareStatement(sql)) {
               stmt.setString(1, username);
               stmt.setString(2, password);
               ResultSet rs = stmt.executeQuery();
               return rs.next();
           }
       }
      }

文章的发布与展示

在博客系统中,用户登录后可以发布新的文章,并浏览所有已发布的文章列表。

  1. 文章发布

    • 创建一个发布文章的界面,允许用户输入文章标题和内容。
    • 后端处理发布请求,将文章保存到数据库。
    • 示例代码:

      <%@ page import="java.sql.*" %>
      <html>
      <head>
       <title>发布文章</title>
      </head>
      <body>
       <form action="PublishServlet" method="post">
           标题:<input type="text" name="title" required><br>
           内容:<textarea name="content" required></textarea><br>
           <input type="submit" value="发布">
       </form>
      </body>
      </html>
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.SQLException;
      
      public class ArticlePublish {
       public static void publishArticle(String title, String content, String author) throws SQLException {
           String sql = "INSERT INTO articles (title, content, author) VALUES (?, ?, ?)";
           try (Connection conn = DatabaseConnection.getConnection();
                PreparedStatement stmt = conn.prepareStatement(sql)) {
               stmt.setString(1, title);
               stmt.setString(2, content);
               stmt.setString(3, author);
               stmt.executeUpdate();
           }
       }
      }
  2. 文章展示

    • 创建一个界面,展示所有已发布文章的标题和摘要。
    • 后端处理请求,从数据库中检索文章信息并展示。
    • 示例代码:

      <%@ page import="java.sql.*" %>
      <html>
      <head>
       <title>文章列表</title>
      </head>
      <body>
       <h1>文章列表</h1>
       <ul>
           <%
               Connection conn = DatabaseConnection.getConnection();
               String sql = "SELECT title, content, author FROM articles";
               PreparedStatement stmt = conn.prepareStatement(sql);
               ResultSet rs = stmt.executeQuery();
               while (rs.next()) {
                   String title = rs.getString("title");
                   String content = rs.getString("content");
                   String author = rs.getString("author");
           %>
           <li><a href="ArticleDetails.jsp?title=<%= title %>"><%= title %></a> - 作者:<%= author %></li>
           <%
               }
           %>
       </ul>
      </body>
      </html>
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.util.ArrayList;
      import java.util.List;
      
      public class ArticleDisplay {
       public static List<Article> getArticles() throws SQLException {
           String sql = "SELECT title, content, author FROM articles";
           List<Article> articles = new ArrayList<>();
           try (Connection conn = DatabaseConnection.getConnection();
                PreparedStatement stmt = conn.prepareStatement(sql)) {
               ResultSet rs = stmt.executeQuery();
               while (rs.next()) {
                   String title = rs.getString("title");
                   String content = rs.getString("content");
                   String author = rs.getString("author");
                   articles.add(new Article(title, content, author));
               }
           }
           return articles;
       }
      }

通过上述代码示例,你可以构建一个简单的博客系统,包含用户注册、登录、文章发布和展示等功能。这只是一个基础的实现,可以根据具体需求进行扩展和优化。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消