Sign inSign up

javawiki/javaee-demo

By javawiki

•Updated 14 days ago

https://github.com/netbuffer/javaee-demo

Image
Networking
Languages & frameworks
Developer tools
0

165

javawiki/javaee-demo repository overview

⁠☕ javaee-demo

🎯 基于 Jakarta EE 11 的演示 Web 应用,用于练习 Servlet、Filter、Listener、JSP/JSTL 等常用能力。

📦 仓库镜像:


⁠✨ 功能特性

能力说明
🔌 Servlet/TestServlet、/route、/json、/cors 等特性演示
👂 Listener通过 /TestServlet 观察各类监听器生命周期
🛡️ FilterEncodingFilter 统一 UTF-8;ModifyHttpResponseFilter 改写 /json 响应
🌐 CORSTomcat CorsFilter⁠ 跨域配置
📄 JSP / JSTLindex、cors、cookie、session-timeout 等页面示例

📍 应用上下文路径为 /javaee-demo,下文路径均相对于该前缀。
完整示例:http://localhost:8080/javaee-demo/TestServlet


⁠🔗 访问路径

⁠Servlet
路径方法说明
/dispatcherGETDispatcherServlet:动态路由演示,回写请求 URI
/TestServletGET / POST监听器生命周期演示
/route?route={name}GET按参数转发到对应 JSP(如 route=env → /env.jsp)
/jsonGET返回 JSON 示例
/corsGET转发到 CORS 演示页
/cookieGETCookie 演示(?delete=true 过期并清除 Cookie);POST 返回 success
/systemGET请求信息转储并转发到 system.jsp;POST 返回 success
/post/testGET转发到 POST 测试页;POST 接收表单参数并返回 success
⁠JSP 页面
路径说明
/ 或 /index.jsp欢迎页(web.xml welcome-file)
/cors.jspCORS 演示页
/cookie.jspCookie 相关页面
/system.jsp系统 / 请求属性展示
/post-test.jspPOST 表单测试页
/session-timeout.jsp查看 Session 超时时间(秒)
/env.jsp环境变量 / 系统属性转储
/escape.jspJSTL escapeXml 转义演示
/trim.jspJSP 空白行裁剪演示
/content.jsp业务内容页(自动引入 header.jsp / footer.jsp)
/header.jsp页头片段(供 include)
/footer.jsp页脚片段(供 include)
⁠Filter(拦截范围)
Filter拦截路径说明
EncodingFilter/*统一请求 / 响应 UTF-8
ModifyHttpResponseFilter/json包装并改写 JSON 响应中的 msg 字段
CorsFilter(Tomcat)/*允许跨域(cors.allowed.origins=*)
RequestDumperFilter(Tomcat)/*请求详情转储到日志

⁠🛠️ 技术栈

组件版本
Java25
Jakarta EE11.0
Servlet 容器Tomcat 11
构建工具Maven
打包产物target/javaee-demo.war

⁠🚀 快速开始

⁠1️⃣ Maven 本地构建
mvn clean package
# 产物: target/javaee-demo.war

将 WAR 部署到 Tomcat 11,或直接使用下方 Docker 方式运行。

⁠2️⃣ Docker Compose(推荐)

⚠️ Dockerfile 仅复制已构建的 WAR,请先执行 mvn clean package。

mvn clean package
docker compose up --build

# 后台运行
docker compose up -d --build

# 验证
curl http://localhost:8080/javaee-demo/

浏览器访问:http://localhost:8080/javaee-demo/⁠

⁠3️⃣ 手动构建镜像
mvn clean package
docker build -t javawiki/javaee-demo:1.0.0 . --no-cache
docker run -it -p 8080:8080 --name javaee-demo -h javaee-demo --rm javawiki/javaee-demo:1.0.0

🐳 镜像地址:Docker Hub · javawiki/javaee-demo⁠


⁠📂 目录结构

src/main/java/cn/netbuffer/   # Servlet / Filter / Listener
src/main/java/cn/lcfms/utils/ # 工具类
src/main/webapp/              # JSP 与静态资源
src/main/webapp/WEB-INF/      # web.xml、util.tld
Dockerfile                    # 基于 Tomcat 11 运行 WAR
docker-compose.yml            # 本地容器编排
.github/workflows/            # CI / Docker 发布

⁠🔄 CI/CD

Workflow触发条件用途
ci.ymlpush / PR → masterMaven 编译打包
docker.yml打 v* 标签或手动触发构建并推送 Docker 镜像

推送镜像需配置仓库 Secrets:DOCKERHUB_USERNAME、DOCKERHUB_TOKEN。

Tag summary

Content type

Image

Digest

sha256:66be218da…

Size

154.1 MB

Last updated

14 days ago

docker pull javawiki/javaee-demo