> 技术文档 > Java Web 应用开发基础入门_java web应用开发

Java Web 应用开发基础入门_java web应用开发


 

目录

​编辑

前言

一. Java Web 应用开发概述

1.1 什么是 Java Web 应用

1.2 Java Web 应用开发的优势

二. 开发环境搭建

2.1 所需工具

2.2 项目结构

2.3 pom.xml配置示例

2.4 JDK 安装与配置

2.5 Tomcat 服务器安装与部署

2.6 IDE 选择与配置(以 Eclipse 为例)

三. Servlet 基础

3.1 Servlet 简介

3.2 Servlet 生命周期

3.3 第一个 Servlet 程序

四. JSP 基础

4.1 JSP 简介

4.2 JSP 语法

4.3 JSP 与 Servlet 的结合使用

五. MVC 设计模式在 Java Web 中的应用

5.1 MVC 设计模式概述

5.2 基于 Servlet 和 JSP 的 MVC 简单实现

5.21创建模型类(User.java):

5.22创建控制器 Servlet(UserServlet.java):

5.23创建视图 JSP 页面(userInfo.jsp):

 5.24创建输入表单页面(inputUser.jsp):

六.  运行项目:

6.1部署项目到 Tomcat 服务器并启动。

6.2访问

七. 数据库连接与操作(以 MySQL 为例)

7.1 MySQL 数据库安装与配置

7.2 JDBC 连接 MySQL 数据库

7.3 在 Java Web 应用中操作数据库

7.31.创建用户表:

7.32. 编写用户数据访问类(UserDAO.java):

  7.33. 在 Servlet 中调用 UserDAO 操作数据库:

 7.34.创建用户列表展示页面(userList.jsp):

八. 常见问题与解决方案

8.1 中文乱码问题

8.2 404错误排查

8.3 数据库连接失败

九. 总结

9.1 核心概念

9.2 开发流程


前言

在当今互联网时代,Web 应用无处不在,它们为人们提供了便捷的信息获取、交互和业务处理方式。Java Web 应用开发作为 Web 开发领域的重要分支,凭借其强大的性能、稳定性和丰富的框架生态,在大型企业级应用、电商平台、金融系统等地方占据着主导地位。对于想要投身 Web 开发领域的开发者来说,掌握 Java Web 应用开发基础是迈向成功的关键一步。

一. Java Web 应用开发概述

1.1 什么是 Java Web 应用

Java Web 应用是基于 Java 技术开发的 Web 应用程序,它运行在 Web 服务器上,通过浏览器与用户进行交互。Java Web 应用通常由前端页面(HTML、CSS、JavaScript)、后端逻辑(Servlet、JSP、Java 代码)和数据库组成。用户通过浏览器发送请求到 Web 服务器,服务器处理请求并返回相应的响应给浏览器,从而实现各种功能。

1.2 Java Web 应用开发的优势

  • 跨平台性:Java 语言具有“一次编写,到处运行”的特性,Java Web 应用可以在不同的操作系统和服务器上运行,无需进行大量修改。
  • 丰富的框架生态:Java 拥有众多优秀的 Web 开发框架,如 Spring、Spring MVC、MyBatis、Hibernate 等,这些框架可以大大提高开发效率和代码质量。
  • 强大的性能和稳定性:Java 虚拟机(JVM)提供了高效的内存管理和垃圾回收机制,使得 Java Web 应用能够处理高并发请求,保证系统的稳定性和性能。
  • 安全性高:Java 提供了完善的安全机制,包括访问控制、加密算法等,可以有效保护 Web 应用的数据安全。

二. 开发环境搭建

2.1 所需工具

  • JDK 17+(推荐使用Amazon Corretto)

  • Apache Tomcat 10.x

  • MySQL 8.0

  • IntelliJ IDEA(社区版即可)

  • Maven 3.8+

2.2 项目结构

标准的Maven Web项目结构:

my-webapp/
├── src/
│   ├── main/
│   │   ├── java/        # Java源代码
│   │   ├── resources/   # 配置文件
│   │   └── webapp/      # Web资源
│   │       ├── WEB-INF/
│   │       └── index.jsp
├── pom.xml              # Maven配置文件

2.3 pom.xml配置示例

 4.0.0 com.example my-webapp 1.0-SNAPSHOT war    jakarta.servlet jakarta.servlet-api 5.0.0 provided    jakarta.servlet.jsp.jstl jakarta.servlet.jsp.jstl-api 2.0.0    mysql mysql-connector-java 8.0.28  

2.4 JDK 安装与配置

  • 下载 JDK:访问 Oracle 官网(https://www.oracle.com/java/technologies/javase-downloads.html)下载适合自己操作系统的 JDK 版本。
  • 安装 JDK:按照安装向导的提示完成 JDK 的安装。
  • 配置环境变量
    • Windows 系统:右键点击“此电脑”,选择“属性”,进入“高级系统设置”,点击“环境变量”。在“系统变量”中,新建变量名 JAVA_HOME,变量值为 JDK 的安装路径(如 C:\\Program Files\\Java\\jdk-17)。然后编辑 Path 变量,添加 %JAVA_HOME%\\bin
    • Mac/Linux 系统:打开终端,编辑 ~/.bash_profile 或 ~/.zshrc 文件(根据使用的 shell 不同),添加以下内容
    • export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Homeexport PATH=$JAVA_HOME/bin:$PATH
      然后执行 `source ~/.bash_profile` 或 `source ~/.zshrc` 使配置生效。

      验证安装:打开命令行工具,输入 java -version 和 javac -version,如果显示 JDK 版本信息,则说明安装和配置成功。

2.5 Tomcat 服务器安装与部署

  • 下载 Tomcat:访问 Apache Tomcat 官网(https://tomcat.apache.org/download-90.cgi)下载适合自己操作系统的 Tomcat 版本。
  • 安装 Tomcat:解压下载的 Tomcat 压缩包到指定目录即可完成安装。
  • 启动 Tomcat
    • Windows 系统:进入 Tomcat 的 bin 目录,双击 startup.bat 文件启动 Tomcat。
    • Mac/Linux 系统:进入 Tomcat 的 bin 目录,执行 ./startup.sh 命令启动 Tomcat。
  • 验证 Tomcat 是否启动成功:打开浏览器,访问 http://localhost:8080,如果看到 Tomcat 的欢迎页面,则说明启动成功。

2.6 IDE 选择与配置(以 Eclipse 为例)

  • 下载 Eclipse:访问 Eclipse 官网(https://www.eclipse.org/downloads/packages/)下载适合 Java Web 开发的 Eclipse 版本,如 Eclipse IDE for Enterprise Java and Web Developers。
  • 安装 Eclipse:解压下载的 Eclipse 压缩包到指定目录即可完成安装。
  • 配置 Tomcat 服务器
    • 打开 Eclipse,点击“Window” -> “Preferences”。
    • 在左侧导航栏中选择“Server” -> “Runtime Environments”,点击“Add”按钮。
    • 选择对应的 Tomcat 版本,指定 Tomcat 的安装路径,点击“Finish”完成配置。

三. Servlet 基础

3.1 Servlet 简介

Servlet 是 Java Web 开发中的核心技术之一,它是一种运行在 Web 服务器或应用服务器上的 Java 类,用于处理客户端的请求并生成响应。Servlet 可以接收客户端发送的 HTTP 请求,处理业务逻辑,并将处理结果返回给客户端。

3.2 Servlet 生命周期

Servlet 的生命周期由 Servlet 容器(如 Tomcat)管理,主要包括以下几个阶段:

  • 加载和实例化:Servlet 容器在启动时或第一次接收到对该 Servlet 的请求时,加载 Servlet 类并创建其实例。
  • 初始化:调用 Servlet 的 init() 方法进行初始化操作,该方法只在 Servlet 实例创建时调用一次。
  • 服务:当客户端发送请求时,Servlet 容器调用 Servlet 的 service() 方法处理请求。service() 方法会根据请求的类型(GET、POST 等)调用相应的 doGet()doPost() 等方法。
  • 销毁:当 Servlet 容器关闭或重新加载时,调用 Servlet 的 destroy() 方法进行资源清理操作,该方法只在 Servlet 实例销毁时调用一次。

3.3 第一个 Servlet 程序

  1. 创建动态 Web 项目
    • 打开 Eclipse,点击“File” -> “New” -> “Dynamic Web Project”。
    • 输入项目名称,如 FirstServletDemo,选择目标运行时为之前配置的 Tomcat 服务器,点击“Finish”完成项目创建。
  2. 创建 Servlet 类
    • 右键点击项目的 src 文件夹,选择“New” -> “Servlet”。
    • 输入包名和类名,如 com.example.FirstServlet,点击“Finish”完成 Servlet 类创建。
  3. 编写 Servlet 代码
  1. package com.example;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet(\"/FirstServlet\")public class FirstServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\"text/html;charset=UTF-8\"); PrintWriter out = response.getWriter(); out.println(\"\"); out.println(\"

    这是我的第一个 Servlet 程序!

    \"); out.println(\"\"); }}

    4.部署和运行 Servlet

    • 右键点击项目,选择“Run As” -> “Run on Server”。
    • 选择之前配置的 Tomcat 服务器,点击“Finish”启动服务器并运行项目。
    • 打开浏览器,访问 http://localhost:8080/FirstServletDemo/FirstServlet,即可看到 Servlet 的输出结果。

四. JSP 基础

4.1 JSP 简介

JSP(JavaServer Pages)是一种动态网页技术标准,它允许在 HTML 页面中嵌入 Java 代码。JSP 页面在服务器端被编译成 Servlet,然后由 Servlet 容器执行,生成动态的 HTML 页面返回给客户端。

4.2 JSP 语法

  • JSP 指令:用于控制 JSP 页面的整体行为,如 page 指令、include 指令、taglib 指令等。
  • JSP 脚本元素
    • 声明:用于声明变量和方法。
  • JSP 动作标签:用于在 JSP 页面中执行一些常见的操作,如  等。

4.3 JSP 与 Servlet 的结合使用

在实际开发中,通常将 Servlet 用于处理业务逻辑,将 JSP 用于展示数据。Servlet 接收客户端请求,处理业务逻辑后,将数据存储在请求或会话对象中,然后转发到 JSP 页面,JSP 页面从请求或会话对象中获取数据并展示给客户端。

示例代码

  • Servlet 代码(DataServlet.java)
package com.example;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;@WebServlet(\"/DataServlet\")public class DataServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = \"张三\"; int age = 25; request.setAttribute(\"userName\", name); request.setAttribute(\"userAge\", age); request.getRequestDispatcher(\"/displayData.jsp\").forward(request, response); }}
  • JSP 代码(displayData.jsp)
显示数据 

用户信息

姓名:

年龄:

五. MVC 设计模式在 Java Web 中的应用

5.1 MVC 设计模式概述

MVC(Model-View-Controller)是一种软件设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。

  • 模型(Model):负责处理业务逻辑和数据存储,通常包括 JavaBean 类和数据库操作类。
  • 视图(View):负责展示数据给用户,通常由 JSP 页面实现。
  • 控制器(Controller):负责接收用户的请求,调用模型处理业务逻辑,并将处理结果返回给视图进行展示,通常由 Servlet 实现。

5.2 基于 Servlet 和 JSP 的 MVC 简单实现

5.21创建模型类(User.java)

package com.example.model;public class User { private String name; private int age; public User() { } public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}

5.22创建控制器 Servlet(UserServlet.java)

package com.example.controller;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 com.example.model.User;@WebServlet(\"/UserServlet\")public class UserServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter(\"name\"); int age = Integer.parseInt(request.getParameter(\"age\")); User user = new User(name, age); request.setAttribute(\"user\", user); request.getRequestDispatcher(\"/userInfo.jsp\").forward(request, response); }}

5.23创建视图 JSP 页面(userInfo.jsp)

用户信息展示 

用户信息

姓名:${user.name}

年龄:${user.age}

 5.24创建输入表单页面(inputUser.jsp)

输入用户信息 

输入用户信息

姓名:
年龄:

六.  运行项目

6.1部署项目到 Tomcat 服务器并启动。

6.2访问

打开浏览器,访问 http://localhost:8080/项目名/inputUser.jsp,输入用户信息并提交,即可看到用户信息展示页面

七. 数据库连接与操作(以 MySQL 为例)

7.1 MySQL 数据库安装与配置

  • 下载 MySQL:访问 MySQL 官网(https://dev.mysql.com/downloads/mysql/)下载适合自己操作系统的 MySQL 安装包。
  • 安装 MySQL:按照安装向导的提示完成 MySQL 的安装,并设置 root 用户密码。
  • 启动 MySQL 服务
    • Windows 系统:在服务管理器中启动 MySQL 服务。
    • Mac/Linux 系统:使用命令 sudo service mysql start(具体命令可能因系统而异)启动 MySQL 服务。
  • 使用 MySQL 客户端连接数据库
    • 打开命令行工具,输入 mysql -u root -p,然后输入密码连接 MySQL 数据库。

7.2 JDBC 连接 MySQL 数据库

JDBC(Java Database Connectivity)是 Java 提供的用于连接和操作数据库的 API。以下是使用 JDBC 连接 MySQL 数据库的基本步骤:

  1. 导入 JDBC 驱动
    • 下载 MySQL 的 JDBC 驱动(mysql-connector-java-x.x.xx.jar),并将其添加到项目的类路径中。在 Eclipse 中,可以右键点击项目,选择“Build Path” -> “Configure Build Path”,在“Libraries”选项卡中点击“Add External JARs”,选择下载的 JDBC 驱动文件。
  2. 编写 JDBC 连接代码
package com.example.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBUtil { private static final String URL = \"jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC\"; private static final String USER = \"root\"; private static final String PASSWORD = \"yourpassword\"; static { try { Class.forName(\"com.mysql.cj.jdbc.Driver\"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); }}

7.3 在 Java Web 应用中操作数据库

7.31.创建用户表

在 MySQL 客户端中执行以下 SQL 语句创建用户表:

CREATE DATABASE testdb;USE testdb;CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT NOT NULL);

7.32. 编写用户数据访问类(UserDAO.java)

package com.example.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.example.model.User;public class UserDAO { public void addUser(User user) { String sql = \"INSERT INTO users(name, age) VALUES(?, ?)\"; try (Connection conn = DBUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, user.getName()); pstmt.setInt(2, user.getAge()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public List getAllUsers() { List users = new ArrayList(); String sql = \"SELECT * FROM users\"; try (Connection conn = DBUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery()) { while (rs.next()) { User user = new User(); user.setId(rs.getInt(\"id\")); user.setName(rs.getString(\"name\")); user.setAge(rs.getInt(\"age\")); users.add(user); } } catch (SQLException e) { e.printStackTrace(); } return users; }}

  7.33. 在 Servlet 中调用 UserDAO 操作数据库

package com.example.controller;import java.io.IOException;import java.util.List;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 com.example.dao.UserDAO;import com.example.model.User;@WebServlet(\"/UserListServlet\")public class UserListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { UserDAO userDAO = new UserDAO(); List users = userDAO.getAllUsers(); request.setAttribute(\"users\", users); request.getRequestDispatcher(\"/userList.jsp\").forward(request, response); }}

 7.34.创建用户列表展示页面(userList.jsp)

用户列表 

用户列表

ID 姓名 年龄
${user.id} ${user.name} ${user.age}

八. 常见问题与解决方案

8.1 中文乱码问题

解决方案

// 在Servlet中设置请求和响应编码request.setCharacterEncoding(\"UTF-8\");response.setContentType(\"text/html;charset=UTF-8\");// 在JSP页面头部添加

8.2 404错误排查

  1. 检查URL路径是否正确

  2. 确认Servlet注解或web.xml配置正确

  3. 检查项目是否成功部署到Tomcat

  4. 查看Tomcat日志中的错误信息

8.3 数据库连接失败

  1. 检查数据库服务是否启动

  2. 验证连接URL、用户名和密码

  3. 确认数据库驱动已正确添加

  4. 检查网络连接和防火墙设置

九. 总结

java Web 应用开发是利用 Java 技术构建 Web 应用程序的过程,它结合了 Java 的强大特性和 Web 技术的灵活性。以下是基础入门解析总结:

9.1 核心概念

Java Web 应用基于客户端-服务器架构,通过浏览器访问。其核心组件包括:

  • Servlet:处理 HTTP 请求和响应的 Java 类,是 Java Web 的基础。
  • JSP (JavaServer Pages):动态生成 HTML 页面的技术,支持嵌入 Java 代码。
  • JSTL 和 EL 表达式:简化 JSP 开发,提供标签库和表达式语言。

9.2 开发流程

  1. 环境搭建:安装 JDK、配置 Tomcat 等 Web 服务器。
  2. 项目创建:使用 IDE(如 Eclipse、IntelliJ IDEA)创建 Java Web 项目。
  3. 开发:编写 Servlet 处理请求,JSP 生成页面,结合模型层实现业务逻辑。
  4. 部署:将项目打包为 WAR 文件,部署到服务器。
  5. 测试:通过浏览器访问,验证功能。

通过本文的学习,我们了解了 Java Web 应用开发的基础知识,包括开发环境搭建、Servlet 和 JSP 的使用、MVC 设计模式的应用以及数据库连接与操作。Java Web 应用开发领域不断发展,新技术和新框架层出不穷。希望本文能够为你的 Java Web 开发之旅打下坚实的基础,让你在未来的学习和工作中能够不断探索和创新,成为一名优秀的 Java Web 开发者。