凌峰创科服务平台

案例如何助你学懂Java服务器端程序设计?

学习路径概览

  1. 基础入门 - 从零开始搭建一个静态网站

    案例如何助你学懂Java服务器端程序设计?-图1
    (图片来源网络,侵删)
    • 技术: Servlet & JSP
    • 案例: 个人博客首页
    • 目标: 理解Web服务器如何工作,处理HTTP请求和响应。
  2. 核心进阶 - 构建一个动态Web应用

    • 技术: Servlet + JSP + JDBC + JSTL/EL
    • 案例: 留言板系统
    • 目标: 学习数据库交互、表单处理、会话管理和代码组织。
  3. 框架革命 - 使用主流框架开发

    • 技术: Spring Boot + Spring MVC + MyBatis/JPA
    • 案例: 在线任务管理系统
    • 目标: 掌握业界标准框架,理解IoC、AOP等核心思想,大幅提升开发效率。
  4. 现代实践 - 构建RESTful API与前后端分离

    • 技术: Spring Boot + Spring Data REST + Vue.js (前端)
    • 案例: 用户管理API及配套前端页面
    • 目标: 学习现代Web开发模式,为移动端和前端工程化打下基础。

基础入门 - 个人博客首页

这个阶段我们不使用任何框架,直接使用Java EE的核心技术,这能让你深刻理解Web应用的底层原理。

案例如何助你学懂Java服务器端程序设计?-图2
(图片来源网络,侵删)

核心概念

  • Servlet: 运行在服务器端的Java小程序,用于接收和响应客户端请求,你可以把它想象成一个“Java版的CGI程序”。
  • Tomcat: 最流行的开源Web服务器,用于运行Servlet和JSP。
  • HTTP: 超文本传输协议,浏览器和服务器之间沟通的语言。
  • Maven: 项目管理和构建工具,用于管理项目依赖(比如Tomcat的库)和打包。

案例:展示一个包含标题和文章列表的博客首页

目标: 当用户访问 http://localhost:8080/myblog/index 时,服务器返回一个HTML页面,显示博客标题和几篇静态文章。

步骤 1: 环境准备

  1. 安装JDK 8或更高版本。
  2. 安装Maven。
  3. 下载并解压Tomcat服务器。

步骤 2: 创建Maven Web项目

使用IDE(如IntelliJ IDEA或Eclipse)创建一个Maven项目,并选择 maven-archetype-webapp 模板,项目结构如下:

myblog/
├── src/
│   └── main/
│       ├── java/          <-- 存放Java源代码
│       ├── resources/     <-- 存放配置文件
│       └── webapp/        <-- 存放Web资源
│           ├── index.jsp
│           ├── WEB-INF/
│           │   └── web.xml  <-- 部署描述符,核心配置文件
│           └── ...
└── pom.xml                <-- Maven项目文件

步骤 3: 编写Servlet

src/main/java 下创建一个包,com.example.blog,然后创建一个 IndexServlet.java

// src/main/java/com/example/blog/IndexServlet.java
package com.example.blog;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class IndexServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1. 设置响应内容类型和字符编码
        response.setContentType("text/html;charset=UTF-8");
        // 2. 获取输出流,向客户端写入HTML内容
        // 实际开发中,我们不会在Servlet里写大量HTML,这里仅为演示
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>我的博客</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>欢迎来到我的技术博客</h1>");
        out.println("<p>这里分享关于Java、编程和生活的思考。</p>");
        out.println("<ul>");
        out.println("  <li><a href='article1.html'>Java入门心得</a></li>");
        out.println("  <li><a href='article2.html'>Servlet原理详解</a></li>");
        out.println("</ul>");
        out.println("</body>");
        out.println("</html>");
    }
}

步骤 4: 配置web.xml

web.xml 是告诉Tomcat如何处理URL请求的“地图”,我们需要将一个URL路径(/index)映射到我们刚刚创建的 IndexServlet

<!-- src/main/webapp/WEB-INF/web.xml -->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>IndexServlet</servlet-name>
        <servlet-class>com.example.blog.IndexServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>IndexServlet</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>
</web-app>

步骤 5: 运行和测试

  1. 在IDE中配置Tomcat服务器。
  2. 将项目部署到Tomcat。
  3. 启动Tomcat,并在浏览器中访问 http://localhost:8080/myblog/index

你应该能看到: 为“我的博客”的页面,下面有两个链接。

阶段一总结: 你已经成功创建了一个Java服务器端程序!它接收一个GET请求,并返回一个静态的HTML响应,这是所有Web应用的基石。


核心进阶 - 留言板系统

让我们让应用“动”起来,留言板需要用户提交数据,并持久化存储。

核心概念

  • JSP (JavaServer Pages): 在HTML中嵌入Java代码的技术,用于生成动态HTML页面,Servlet负责逻辑,JSP负责展示。
  • JDBC (Java Database Connectivity): Java连接数据库的标准API。
  • 数据库: 我们使用轻量级的SQLite,无需额外安装数据库服务。
  • JSTL/EL: JSP标准标签库和表达式语言,让JSP页面更简洁,减少Java脚本代码。

案例功能

  1. 访问留言板首页,显示所有留言。
  2. 提供一个表单,可以输入昵称和留言内容并提交。
  3. 提交后,留言被保存到数据库,并刷新页面显示新留言。

步骤 1: 添加数据库依赖

pom.xml 中添加SQLite JDBC驱动。

<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.36.0.3</version>
</dependency>

步骤 2: 创建数据库工具类

创建一个 DBUtil.java 来管理数据库连接和表初始化。

// src/main/java/com/example/guestbook/DBUtil.java
package com.example.guestbook;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DBUtil {
    private static final String DB_URL = "jdbc:sqlite:guestbook.db";
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(DB_URL);
    }
    public static void initDB() {
        String sql = "CREATE TABLE IF NOT EXISTS messages ("
                   + " id INTEGER PRIMARY KEY AUTOINCREMENT,"
                   + " nickname TEXT NOT NULL,"
                   + " content TEXT NOT NULL,"
                   + " created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP"
                   + ");";
        try (Connection conn = getConnection(); Statement stmt = conn.createStatement()) {
            stmt.execute(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

步骤 3: 编写处理留言的Servlet

创建 MessageServlet.java,处理 /message 路径的请求。

// src/main/java/com/example/guestbook/MessageServlet.java
package com.example.guestbook;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
@WebServlet(name = "MessageServlet", value = {"/message", "/list"}) // 使用注解简化配置
public class MessageServlet extends HttpServlet {
    @Override
分享:
扫描分享到社交APP
上一篇
下一篇