Skip to content

devYren/java-web-servlet-study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Web Servlet 学习项目

这是一个用于学习Java Web开发的项目,主要涵盖了Servlet、Filter、Listener以及Spring AOP等核心技术。

项目结构

java-web-servlet-study/
├── src/
│   └── main/
│       ├── java/
│       │   ├── com/java/web/          # Java Web 核心组件
│       │   │   ├── filter/            # 过滤器
│       │   │   ├── listener/          # 监听器
│       │   │   ├── request/           # 请求处理Servlet
│       │   │   ├── response/          # 响应处理Servlet
│       │   │   └── web/               # Web组件
│       │   └── com/spring/            # Spring相关
│       │       └── proxy/             # 代理模式实现
│       │           ├── aspectj/       # AspectJ AOP
│       │           └── jdk/           # JDK动态代理
│       ├── resources/                 # 资源文件
│       └── webapp/                    # Web应用目录
│           ├── WEB-INF/
│           │   └── web.xml           # Web应用配置
│           ├── demo.jsp              # JSP页面
│           └── post.html             # HTML页面
├── pom.xml                           # Maven配置文件
└── README.md                         # 项目说明文档

技术栈

  • Java Servlet 3.1.0 - Web应用核心技术
  • JSP 2.2 - 动态网页技术
  • Spring Framework 5.0.5 - 企业级应用框架
  • AspectJ 1.8.4 - 面向切面编程
  • JSTL 1.2 - JSP标准标签库
  • Maven - 项目构建和依赖管理

主要功能模块

1. Servlet 请求处理 (com.java.web.request)

包含多个Servlet示例,演示不同的请求处理方式:

  • ServletDemo1 - 基础Servlet实现,实现了完整的Servlet接口
  • ServletDemo7 - HTTP请求参数处理和响应设置
  • ServletDemo1-10 - 各种Servlet使用场景的演示

2. Servlet 响应处理 (com.java.web.response)

  • ResponseDemo1 - HTTP重定向实现
  • ResponseDemo2-4 - 不同响应处理方式的演示

3. 过滤器 (com.java.web.filter)

  • FilterDemo - 实现请求和响应的过滤处理
    • 请求前处理
    • 请求后处理
    • 全局过滤器配置 (/*)

4. 监听器 (com.java.web.listener)

  • ContextLoaderListener - 应用上下文监听器
    • 应用启动监听
    • 应用销毁监听

5. Spring AOP (com.spring.proxy)

JDK动态代理 (jdk)

  • Target - 目标对象
  • TargetInterFace - 目标接口
  • Advice - 通知/增强
  • ProxyTest - 代理测试

AspectJ AOP (aspectj)

  • Target - 目标对象(带Spring注解)
  • TargetInterFace - 目标接口
  • Advice - 切面通知

配置说明

Maven依赖 (pom.xml)

<dependencies>
    <!-- Servlet API -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    
    <!-- JSP API -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
        <scope>provided</scope>
    </dependency>
    
    <!-- Spring Framework -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>
    
    <!-- AspectJ -->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.8.4</version>
    </dependency>
    
    <!-- JSTL -->
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>

Web应用配置 (web.xml)

<web-app>
    <display-name>Archetype Created Web Application</display-name>
    
    <!-- Servlet配置示例 -->
    <servlet>
        <servlet-name>demo6</servlet-name>
        <servlet-class>com.java.web.request.ServletDemo6</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo6</servlet-name>
        <url-pattern>/demo6</url-pattern>
    </servlet-mapping>
</web-app>

运行方式

  1. 环境要求

    • JDK 8+
    • Maven 3.6+
    • Tomcat 8.5+ 或其他Servlet容器
  2. 构建项目

    mvn clean compile
    mvn package
  3. 部署运行

    • 将生成的WAR文件部署到Tomcat服务器
    • 或使用IDE直接运行(如IntelliJ IDEA)
  4. 访问应用

    • 基础Servlet: http://localhost:8080/项目名/javaWeb
    • 参数处理: http://localhost:8080/项目名/demo7?name=张三
    • JSP页面: http://localhost:8080/项目名/demo.jsp

学习要点

Servlet核心概念

  • Servlet生命周期(init、service、destroy)
  • HTTP请求处理(GET、POST)
  • 请求参数获取和响应设置
  • 注解配置 vs XML配置

过滤器和监听器

  • Filter的执行顺序和链式调用
  • ServletContextListener的应用场景
  • Web组件的生命周期管理

Spring AOP

  • JDK动态代理 vs CGLIB代理
  • AspectJ注解的使用
  • 切面编程的实际应用

作者信息

  • 作者: ChenYu ren
  • 创建时间: 2022年3月
  • 项目类型: Java Web学习项目

许可证

本项目仅用于学习目的,请遵循相关开源协议。

About

JavaWeb Servlet技术学习Demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published