这是一个用于学习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 - 项目构建和依赖管理
包含多个Servlet示例,演示不同的请求处理方式:
- ServletDemo1 - 基础Servlet实现,实现了完整的Servlet接口
- ServletDemo7 - HTTP请求参数处理和响应设置
- ServletDemo1-10 - 各种Servlet使用场景的演示
- ResponseDemo1 - HTTP重定向实现
- ResponseDemo2-4 - 不同响应处理方式的演示
- FilterDemo - 实现请求和响应的过滤处理
- 请求前处理
- 请求后处理
- 全局过滤器配置 (
/*
)
- ContextLoaderListener - 应用上下文监听器
- 应用启动监听
- 应用销毁监听
- Target - 目标对象
- TargetInterFace - 目标接口
- Advice - 通知/增强
- ProxyTest - 代理测试
- Target - 目标对象(带Spring注解)
- TargetInterFace - 目标接口
- Advice - 切面通知
<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-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>
-
环境要求
- JDK 8+
- Maven 3.6+
- Tomcat 8.5+ 或其他Servlet容器
-
构建项目
mvn clean compile mvn package
-
部署运行
- 将生成的WAR文件部署到Tomcat服务器
- 或使用IDE直接运行(如IntelliJ IDEA)
-
访问应用
- 基础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组件的生命周期管理
- JDK动态代理 vs CGLIB代理
- AspectJ注解的使用
- 切面编程的实际应用
- 作者: ChenYu ren
- 创建时间: 2022年3月
- 项目类型: Java Web学习项目
本项目仅用于学习目的,请遵循相关开源协议。