跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Java Web 开发入门:核心概念、环境搭建与 Servlet JSP 实战

Java Web 技术涵盖服务器端处理与动态内容生成。介绍 Java Web 基础概念如 B/S 架构、HTTP 协议及核心组件 Servlet 和 JSP。详细说明了 JDK、IDE、Tomcat、MySQL 等开发环境的搭建步骤。通过 Hello World 示例解析 Servlet 生命周期与配置方式,讲解 JSP 语法元素与内置对象。最后提供基于 Servlet 与 JSP 交互的用户登录实战案例,展示请求处理、会话管理及页面跳转流程。

SecGuard发布于 2026/2/6更新于 2026/10/2683 浏览
Java Web 开发入门:核心概念、环境搭建与 Servlet JSP 实战

Java Web 基础概念

什么是 Java Web

Java Web 是运用 Java 技术解决 Web 领域相关问题的技术集合。它主要涵盖服务器端的应用,如 Servlet、JSP 以及各种第三方框架。客户端通常通过浏览器访问,不再广泛使用 Java Applet。

以电商网站为例,用户请求到达服务器后,由 Servlet 处理业务逻辑(如验证身份、查询商品),利用 JSP 生成动态 HTML 页面展示给用户。过程中可能结合 Spring 管理依赖,MyBatis 操作数据库。

Java Web 的优势

  • 跨平台:基于 Java 语言特性,应用可在不同操作系统运行,降低适配成本。
  • 安全性:具备字节码验证和安全管理机制,保障数据与用户安全。
  • 多线程:支持并发处理多个用户请求,保持高性能响应。
  • 丰富生态:拥有 Spring、MyBatis 等优秀框架,减少重复开发,提升可维护性。

核心概念详解

  • B/S 架构:Browser/Server 模式,核心功能在服务器端,客户端仅需浏览器。
  • 静态与动态资源:静态资源(HTML/CSS/图片)内容固定;动态资源(JSP/Servlet)根据请求动态生成。
  • 数据库:存储管理数据,常用 MySQL、Oracle 等,通过 JDBC 交互。
  • HTTP 协议:基于 TCP/IP 的请求 - 响应协议,包含请求行、头、体及响应信息。
  • Web 服务器:接收并处理请求,如 Tomcat、Jetty。Tomcat 是常用的 Servlet/JSP 容器。

搭建 Java Web 开发环境

所需软件

  • JDK:Java 开发工具包,包含运行时、编译器及核心类库。
  • IDE:推荐 IntelliJ IDEA 或 MyEclipse,提供代码编辑、调试及插件支持。
  • Tomcat:开源轻量级应用服务器,实现 Servlet/JSP 规范。
  • MySQL:流行开源关系型数据库。
  • Navicat for MySQL:数据库管理与开发图形化工具。

安装与配置流程

  1. JDK:下载安装包,配置环境变量 JAVA_HOME 和 Path。验证命令 javac 和 java -version。
  2. IDE:下载对应版本安装包,完成向导式安装。配置项目 SDK 指向 JDK 路径,按需安装插件。
  3. Tomcat:解压压缩包至指定目录。修改 conf/server.xml 中的端口号(默认 8080)。运行 bin/startup.bat 启动,浏览器访问 http://localhost:8080 验证。
  4. MySQL:下载安装程序,设置 root 密码。配置环境变量 MYSQL_HOME 和 Path。命令行测试 mysql -u root -p。
  5. Navicat:下载安装,激活授权。新建 MySQL 连接,填写主机、端口、用户名和密码,测试连接成功即可。

深入 Java Web 核心技术:Servlet 与 JSP

Servlet 详解

Servlet 是运行在服务器端的 Java 程序,负责处理 HTTP 请求并生成动态内容。它是 Java EE 规范的一部分。

生命周期
  1. 初始化:加载时调用 init() 方法,仅执行一次。
  2. 服务:收到请求时调用 service() 方法,分发到 doGet 或 doPost。
  3. 销毁:服务器关闭时调用 destroy() 方法释放资源。
常用方法
  • init(ServletConfig config):初始化工作。
  • service(ServletRequest request, ServletResponse response):处理请求。
  • doGet/doPost:分别处理 GET 和 POST 请求。
  • destroy():释放资源。
配置方式

可使用 @WebServlet 注解或 web.xml 文件配置映射路径。

<web-app>
    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <servlet-class>com.example.HelloWorldServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

JSP 探秘

JSP (JavaServer Pages) 允许将 Java 代码嵌入 HTML,本质是编译为 Servlet。适用于页面展示,常与 Servlet 配合实现 MVC 模式。

语法元素
  • 指令:如 <%@ page %> 定义属性,<%@ include %> 包含文件。
  • 脚本元素:表达式 <%= %> 输出结果,脚本段 <% %> 嵌入代码,声明 <%! %> 定义变量方法。
  • 动作:如 <jsp:forward> 转发请求,<jsp:include> 包含资源。
内置对象
  • request / response:请求与响应对象。
  • session / application:会话与应用上下文。
  • out:输出流。
  • pageContext / config / page / exception:其他上下文与异常处理对象。

Servlet 与 JSP 交互案例实操

通过用户登录案例演示交互过程。Servlet 处理逻辑,JSP 负责展示。

项目结构
src
├── main
│   ├── java
│   │   └── com
│   │       └── example
│   │           └── LoginServlet.java
│   └── webapp
│       ├── login.jsp
│       ├── success.jsp
│       └── WEB-INF
│           └── web.xml
代码实现

login.jsp:登录表单页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><title>User Login</title></head>
<body>
<h2>User Login</h2>
<form action="login" method="post">
    <label for="username">Username:</label><br>
    <input type="text" name="username" required><br>
    <label for="password">Password:</label><br>
    <input type="password" name="password" required><br><br>
    <input type="submit" value="Login">
</form>
</body>
</html>

LoginServlet.java:处理登录逻辑

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 获取用户输入的用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        // 模拟数据库验证,假设用户名和密码都为 admin 时验证通过
        if ("admin".equals(username) && "admin".equals(password)) {
            // 验证成功,将用户名存入会话中
            HttpSession session = request.getSession();
            session.setAttribute("username", username);
            // 转发到 success.jsp 页面
            request.getRequestDispatcher("success.jsp").forward(request, response);
        } else {
            // 验证失败,返回登录页面并显示错误信息
            request.setAttribute("error", "Invalid username or password");
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }
}

success.jsp:登录成功页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><title>Login Success</title></head>
<body>
<h2>Welcome, <%= session.getAttribute("username") %>!</h2>
<p>Login successful.</p>
</body>
</html>

目录

  1. Java Web 基础概念
  2. 什么是 Java Web
  3. Java Web 的优势
  4. 核心概念详解
  5. 搭建 Java Web 开发环境
  6. 所需软件
  7. 安装与配置流程
  8. 深入 Java Web 核心技术:Servlet 与 JSP
  9. Servlet 详解
  10. 生命周期
  11. 常用方法
  12. 配置方式
  13. JSP 探秘
  14. 语法元素
  15. 内置对象
  16. Servlet 与 JSP 交互案例实操
  17. 项目结构
  18. 代码实现

更多推荐文章

查看全部
  • VS Code 中 Git 使用指南:从配置到协作
  • 基于 OpenClaw 与飞书搭建专属 AI 机器人指南
  • Trae-cli 命令行工具安装配置与使用指南
  • GitHub Copilot 账号切换与退出方法,解决自动补全额度不足
  • Seedance 2.0 集成飞书机器人:OAuth2.1 鉴权与消息卡片调试实战
  • Windows 系统下 Python 安装及环境变量配置
  • 解决 Docker 镜像拉取超时连接被取消错误
  • 前端首屏加载:六维优化实操清单
  • WorkBuddy 使用指南:配置 QQ 机器人实现桌面智能体
  • 前端国际化开发实践:基于 i18next
  • Stable Diffusion WebUI Forge 模型评估实战指南:三大核心指标解析
  • Stable Diffusion 主流模型推荐与分类解析
  • 清理满屏 import,我试过的几个实用方法
  • 普通工程师如何在笔记本上运行大模型:BioMedGPT-7B 入门教程
  • 招聘面试中常见的奇葩心理测试解析
  • sherpa-onnx 离线语音部署框架:支持 Whisper、Moonshine 等多模型跨平台
  • WebAI2API 将网页 AI 服务转换为兼容 OpenAI 协议的 API
  • RAG 四大模式解析:Naive、Advanced、Modular 与 Agentic
  • GPT-5-Codex 发布:AI 程序员进入独立任务执行时代
  • 2024 年前端主流框架技术总结:React Vue Svelte Qwik

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online