杰瑞科技汇

Eclipse如何开发Java Web项目?

目录

  1. 第一部分:环境准备
    • 1 安装 JDK
    • 2 安装 Eclipse IDE for Enterprise Java and Web Developers
    • 3 安装 Tomcat 服务器
  2. 第二部分:在 Eclipse 中配置 Tomcat
    • 1 下载并添加 Tomcat 服务器到 Eclipse
    • 2 验证 Tomcat 配置
  3. 第三部分:创建第一个 Java Web 项目
    • 1 新建 Dynamic Web Project
    • 2 项目结构解析
  4. 第四部分:编写和运行你的第一个 Web 应用
    • 1 编写 Servlet
    • 2 配置 Web 部署描述符 (web.xml)
    • 3 运行和测试项目
  5. 第五部分:进阶开发
    • 1 使用 JSP 和 JSTL
    • 2 添加外部依赖 (使用 Maven)
    • 3 调试 Web 应用
  6. 第六部分:项目部署
    • 1 导出 WAR 文件
    • 2 部署到外部 Tomcat
  7. 常见问题与解决方案

第一部分:环境准备

在开始之前,你需要确保你的电脑上安装了以下三样东西。

Eclipse如何开发Java Web项目?-图1
(图片来源网络,侵删)

1 安装 JDK (Java Development Kit)

Java Web 应用运行在 Java 虚拟机上,JDK 是必需的。

  • 下载:访问 Oracle 官网OpenJDK 官网 下载适合你操作系统的 JDK 版本(推荐 JDK 8, 11, 17 或 21 LTS 版本)。
  • 安装:运行安装程序,按照提示一步步完成。记住安装路径C:\Program Files\Java\jdk-17
  • 配置环境变量
    • 新建系统变量 JAVA_HOME,值为你的 JDK 安装路径。
    • 编辑系统变量 Path,添加 %JAVA_HOME%\bin
    • 打开一个新的命令行窗口,输入 java -versionjavac -version,如果显示出版本信息,则说明安装成功。

2 安装 Eclipse IDE

你需要安装专门用于 Web 开发的 Eclipse 版本。

  • 下载:访问 Eclipse 官网,下载 "Eclipse IDE for Enterprise Java and Web Developers"(企业 Java 和 Web 开发者版),这个版本已经内置了 Web 开发所需的各种插件。
  • 安装:将下载的压缩包解压到你想要的目录即可,无需安装。

3 安装 Tomcat 服务器

Tomcat 是一个开源的 Servlet 容器,用于运行 Java Web 应用。

  • 下载:访问 Tomcat 官网 下载 Tomcat 9 或 10 版本(选择 "Core" 下的 "zip" 或 "tar.gz" 包)。
  • 安装:同样,解压到你想要的目录即可,C:\apache-tomcat-9.0.85,这个目录就是你的 CATALINA_HOME

第二部分:在 Eclipse 中配置 Tomcat

你需要告诉 Eclipse 你的 Tomcat 安装在哪里。

Eclipse如何开发Java Web项目?-图2
(图片来源网络,侵删)
  1. 打开 Eclipse,点击顶部菜单栏的 Window -> Preferences (在 macOS 上是 Eclipse -> Preferences)。
  2. 在弹出的窗口中,导航到 Server -> Runtime Environments
  3. 点击右侧的 Add... 按钮。
  4. 在弹出的窗口中,选择你下载的 Tomcat 版本("Apache Tomcat v9.0"),然后点击 Next
  5. 在 "Tomcat installation directory" 一栏,点击 Browse...,选择你之前解压的 Tomcat 目录(C:\apache-tomcat-9.0.85)。
  6. JRE 通常会自动检测,如果没有,手动选择你安装的 JDK。
  7. 点击 Finish
  8. 回到 Preferences 窗口,点击 Apply and Close

第三部分:创建第一个 Java Web 项目

现在环境都准备好了,可以创建项目了。

  1. 在 Eclipse 中,点击 File -> New -> Dynamic Web Project
  2. 输入项目名称HelloWebApp
  3. 选择目标运行时:在 "Target runtime" 下拉菜单中,选择你刚刚配置好的 Tomcat 版本,如果看不到,点击 New... 按钮进行配置。
  4. 配置项目配置
    • Configuration:可以选择 "Java EE 7 Web Profile" 或更高版本,这会帮你自动生成一些标准的目录结构和 web.xml 文件。
    • Content directory:默认是 WebContent,这是存放 JSP、HTML、CSS、JS 等前端资源的地方。
  5. 点击 Finish

项目创建成功后,你会看到类似下面这样的结构:

项目结构解析

  • src/main/java:存放 Java 源代码(如果你的项目是 Maven 或 Gradle 结构)。
  • src/main/resources:存放配置文件(如 log4j.xml, db.properties)。
  • WebContent核心目录,存放所有 Web 资源。
    • WEB-INF安全目录,里面的内容不能被浏览器直接访问。
      • lib:存放项目依赖的 JAR 包。
      • web.xmlWeb 部署描述符,用于配置 Servlet、Filter、Listener 等。
    • index.jsp:默认的首页文件。

第四部分:编写和运行你的第一个 Web 应用

我们将创建一个简单的 Servlet,当访问 /hello 路径时,它会返回 "Hello from Eclipse!"。

Eclipse如何开发Java Web项目?-图3
(图片来源网络,侵删)

1 编写 Servlet

  1. src 目录(或 src/main/java)上右键,New -> Package,创建一个包,com.example.controller
  2. 在新创建的包上右键,New -> Servlet
  3. 输入类名,HelloServlet
  4. 点击 NextFinish,Eclipse 会自动生成 doGetdoPost 方法。
  5. doGet 方法中添加以下代码:
package com.example.controller;
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;
/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/hello") // 使用注解来映射 URL,这比在 web.xml 中配置更方便
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置响应内容类型为 HTML
        response.setContentType("text/html;charset=UTF-8");
        // 获取输出流
        PrintWriter out = response.getWriter();
        // 向浏览器输出 HTML 内容
        out.println("<html>");
        out.println("<head><title>Hello Servlet</title></head>");
        out.println("<body>");
        out.println("<h1>Hello from Eclipse!</h1>");
        out.println("<p>这是一个通过 Eclipse 创建的 Java Web 应用。</p>");
        out.println("</body>");
        out.println("</html>");
    }
}

@WebServlet("/hello"):这是一个 Servlet 3.0+ 的注解,它告诉 Tomcat 当有请求访问 /hello 这个 URL 时,由这个 HelloServlet 来处理,这比在 web.xml 中手动配置要简单得多,如果你使用的是较旧的 Java EE 版本,或者更喜欢 web.xml 配置,可以去掉这个注解,然后在 web.xml 中添加配置。

2 配置 Web 部署描述符 (web.xml)

如果你使用了 @WebServlet 注解,web.xml 不是必须的,但了解一下它的格式是很有用的。

打开 WebContent/WEB-INF/web.xml,你可以看到类似这样的内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    id="WebApp_ID" version="4.0">
  <display-name>HelloWebApp</display-name>
  <!-- 如果不使用 @WebServlet 注解,可以在这里配置 Servlet -->
  <servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.example.controller.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

3 运行和测试项目

  1. 在 Eclipse 的 "Servers" 视图中(如果看不到,点击 Window -> Show View -> Servers),你应该能看到你配置的 Tomcat 服务器。
  2. 右键点击你的 Tomcat 服务器,选择 Add and Remove...
  3. 在弹出的窗口中,将你的 HelloWebApp 项目从 "Available" 添加到 "Configured" 列表,然后点击 Finish
  4. 再次右键点击 Tomcat 服务器,选择 Start,等待服务器启动完成,状态变为 "Started"。
  5. 在你的项目上(HelloWebApp)右键,选择 Run As -> Run on Server
  6. 在弹出的窗口中,选择你的 Tomcat 服务器,点击 Finish
  7. Eclipse 会自动打开系统默认浏览器,并访问 http://localhost:8080/HelloWebApp/hello

你应该能看到页面中显示 "Hello from Eclipse!"。


第五部分:进阶开发

1 使用 JSP 和 JSTL

Servlet 负责业务逻辑,JSP (JavaServer Pages) 负责展示。

  1. WebContent 目录下新建一个 JSP 文件:File -> New -> JSP File,命名为 index.jsp
  2. 修改 HelloServlet,让它将数据传递给 JSP。
// 在 HelloServlet 的 doGet 方法中
request.setAttribute("message", "这是从 Servlet 传递过来的消息");
request.getRequestDispatcher("/index.jsp").forward(request, response);
  1. 修改 index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">Home Page</title>
</head>
<body>
    <h1>Welcome to JSP!</h1>
    <p>${message}</p>
</body>
</html>

访问 /hello,你会看到 Servlet 转发过来的消息。

2 添加外部依赖 (使用 Maven)

现代 Java 开发离不开构建工具 Maven。

  1. 右键项目 -> Configure -> Convert to Maven Project
  2. 项目会变成 Maven 结构,并生成 pom.xml 文件。
  3. pom.xml<dependencies> 标签中添加你需要的依赖,JSTL:
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
    <scope>provided</scope>
</dependency>

添加依赖后,右键项目 Maven -> Update Project,Eclipse 会自动下载 JAR 包到你的 Maven Dependencies 中。

3 调试 Web 应用

调试是开发中至关重要的一环。

  1. 在你的 Java 代码(如 HelloServlet)的行号左侧双击,设置一个断点(一个蓝色圆点)。
  2. 以调试模式启动服务器:右键 Tomcat 服务器 -> Debug As -> Debug on Server
  3. 当请求到达断点时,程序会暂停,你可以在 "Debug" 视图中查看变量值、单步执行代码等。

第六部分:项目部署

当你完成开发,需要将应用部署到生产环境的 Tomcat 服务器上时。

1 导出 WAR 文件

WAR (Web Application Archive) 是 Java Web 应用的标准打包格式。

  1. 右键你的项目 -> Export
  2. 选择 Web -> WAR file,点击 Next
  3. 选择要导出的项目,并设置 WAR 文件的保存路径和文件名,点击 Finish

2 部署到外部 Tomcat

  1. 将生成的 HelloWebApp.war 文件复制到你外部 Tomcat 服务器的 webapps 目录下。
  2. 启动外部 Tomcat(运行 bin/startup.batstartup.sh)。
  3. Tomcat 会自动解压 WAR 文件,然后你就可以通过浏览器访问 http://localhost:8080/HelloWebApp/hello 了。

第七部分:常见问题与解决方案

  1. 问题java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet

    • 原因:项目中缺少 Servlet API 的 JAR 包。
    • 解决:如果你使用的是 Maven,添加 javax.servlet:javax.servlet-api 依赖,如果不是,手动下载 Servlet API 的 JAR 包并添加到项目的 WEB-INF/lib 目录中。
  2. 问题:HTTP Status 404 - /项目名/hello

    • 原因
      • URL 输入错误。
      • Servlet 的映射路径(@WebServlet 的值或 web.xml 中的 <url-pattern>)与浏览器访问的路径不匹配。
      • 项目没有成功部署到 Tomcat 中。
    • 解决:仔细检查 URL 和配置,并确保在 "Servers" 视图中项目已添加到 Tomcat。
  3. 问题:Tomcat 控制台端口 8080 被占用。

    • 原因:可能你已经启动了一个其他 Tomcat 实例,或者其他程序占用了 8080 端口。
    • 解决:关闭其他程序或修改 Tomcat 的端口,修改 conf/server.xml 文件,找到 <Connector port="8088" ... />,将 8088 改成其他未被占用的端口,如 8081
  4. 问题:修改代码后,Tomcat 没有更新。

    • 原因:Tomcat 默认不会自动重新加载应用。
    • 解决:在 Tomcat 的 conf/context.xml 中,找到 <Context> 标签,添加 reloadable="true" 属性,<Context reloadable="true">,但这会影响性能,开发时可用,生产环境禁用。

希望这份详细的指南能帮助你顺利地使用 Eclipse 开发 Java Web 应用!祝你编码愉快!

分享:
扫描分享到社交APP
上一篇
下一篇