Java web项目基础

Published on

这份笔记整理了 JavaWebDemo 项目中几个核心概念,偏向记录要点,方便后续回顾。


目录

  1. Maven 是什么
  2. pom.xml 详解
  3. Servlet 容器概念
  4. JavaWeb 项目 vs 普通 Java 项目
  5. 项目配置和启动
  6. 实践示例

Maven 是什么

Maven 是 Java 项目的构建工具,作用类似前端的 npm。

  • 依赖管理:下载和维护项目依赖
  • 构建流程:编译、测试、打包
  • 生命周期:统一的构建阶段
前端Java
npmMaven
package.jsonpom.xml
npm installmvn install
npm run buildmvn clean package

常用命令:

mvn clean      # 清理构建输出
mvn compile    # 编译源码
mvn test       # 运行测试
mvn package    # 打包生成 JAR/WAR
mvn install    # 安装到本地仓库
mvn clean package  # 先清理再完整构建

注意点:只执行 mvn package 时,可能会复用上一次的构建结果;若要从头构建,常用 mvn clean package。

Maven 的构建过程大致分为三个生命周期:

阶段典型命令说明
Cleanclean清理输出
Defaultcompile/test/package/install默认构建
Sitesite/site-deploy文档生成

pom.xml 详解

pom.xml 是 Maven 的核心配置文件,记录项目标识、依赖和构建方式。

<groupId>com.example</groupId>
<artifactId>JavaWebDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

几个关键点:

  • packaging:决定打包类型。jar 适合普通 Java 项目,war 适合 Web 项目。
  • groupId / artifactId:项目坐标,例如 com.example:JavaWebDemo。
  • scope:依赖范围,如 provided 表示由容器提供,test 表示只用于测试。
  • dependencies:声明项目依赖,Servlet API、JUnit 等都可在这里配置。

常见打包类型对比:

类型适用场景运行方式
jar普通 Java 应用java -jar app.jar
warWeb 应用部署到 Tomcat
pom父项目仅做依赖管理

打包和运行不是一回事:

  • mvn package 负责生成构建产物
  • 真正运行需要把产物部署到 Tomcat 等 Servlet 容器中

Servlet 容器概念

Servlet 容器 是 Web 应用的运行环境,负责接收请求、分发 Servlet、返回响应。

它的职责主要是:

  • 管理 Servlet 生命周期
  • 监听 HTTP 请求
  • 根据 URL 找到对应 Servlet
  • 生成并返回 HTML/JSON 响应

常见容器有 Tomcat、Jetty、WildFly、GlassFish,其中 Tomcat 最常见。

请求流程可简记为:

浏览器请求 → Tomcat 接收 → 查找 Servlet → 调用 doGet/doPost → 返回响应

JavaWeb 项目 vs 普通 Java 项目

维度普通 Java 项目JavaWeb 项目
入口点main()由容器启动
打包方式jarwar
运行方式java -jar部署到 Tomcat 后访问 URL
处理对象业务逻辑HTTP 请求/响应

当前项目属于 Web 项目,结构上会有 src/main/java 和 src/main/webapp 两部分,最终通过 Tomcat 运行。

Web 项目通常没有 main(),因为它不是一个“单一入口程序”,而是由容器根据请求触发 Servlet。也就是说,应用启动由 Tomcat 负责,业务逻辑由 Servlet 在收到请求时执行。


项目配置和启动

环境上通常需要 Maven、Tomcat 和 Java 8+。

IDEA + Tomcat

  1. 配置 Tomcat Server。
  2. 新建运行配置,选择 Tomcat Server。
  3. 在 Before launch 中加入 clean package。
  4. 部署产物选择 JavaWebDemo:war。
  5. 启动后访问 http://localhost:8080/JavaWebDemo/hello-servlet。

命令行构建

cd /Users/nippyxu/VProjects/cocobolo/Java/JavaWebDemo
mvn clean package
cp target/JavaWebDemo-1.0-SNAPSHOT.war /path/to/tomcat/webapps/JavaWebDemo.war

方式三:Maven 内置 Tomcat 插件

可在 pom.xml 中添加 Tomcat 插件,然后运行:

mvn tomcat7:run

实践示例

当前项目里比较重要的几个文件:

  • HelloServlet.java:处理请求并返回响应
  • web.xml:传统配置入口,可选
  • index.jsp:首页入口

1. HelloServlet

@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<h1>servlet data</h1>");
    }
}

2. web.xml

当前项目使用注解方式,web.xml 里可以为空,Servlet 通过 @WebServlet 注册。

3. index.jsp

首页中通过链接访问 Servlet:

<a href="hello-servlet">访问 Servlet</a>

访问方式:

URL说明
http://localhost:8080/JavaWebDemo/默认首页
http://localhost:8080/JavaWebDemo/hello-servletServlet 响应

总结

学习顺序可以记成:

  1. 先掌握 Maven 和 pom.xml
  2. 再理解 Servlet 容器与 Web 项目运行方式
  3. 最后结合当前示例动手跑一遍

关键概念速记:

概念简要说明
MavenJava 项目的构建管理工具
pom.xmlMaven 配置文件
warWeb 应用打包格式
Servlet处理 Web 请求的组件
Tomcat最常见的 Servlet 容器

进一步学习可继续扩展到 JSP、Filter、Session、Cookie 和 Spring。


参考资源