feat: finish bilingual session auth learning lab

This commit is contained in:
Codex
2026-03-24 09:18:13 +08:00
parent 4cc4c26f2b
commit 5e318cb7f4
27 changed files with 1911 additions and 1079 deletions

View File

@@ -1,10 +1,10 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Upload Guide</title>
<title>上传实验指南</title>
<style>
body { margin: 0; padding: 24px; font-family: "Aptos", "Segoe UI", sans-serif; background: linear-gradient(135deg, #0ea5e9, #38bdf8); }
.shell { max-width: 980px; margin: 0 auto; background: rgba(255,255,255,0.96); border-radius: 28px; padding: 28px; box-shadow: 0 24px 60px rgba(0,0,0,0.18); }
@@ -18,16 +18,16 @@
</head>
<body>
<div class="shell">
<div class="eyebrow">Guide</div>
<h1>Upload demo guide</h1>
<p>The refreshed upload flow is deliberately safer for demo use. It shows multipart binding and metadata capture without persisting files.</p>
<div class="eyebrow">指南</div>
<h1>上传实验怎么讲</h1>
<p>现在这条上传链路故意做成“只采集元数据,不真实落盘”的安全版,更适合本地和 VPS 演示环境。</p>
<h2>Core binding fields</h2>
<h2>核心绑定字段</h2>
<ul>
<li><code>File upload</code> for the primary file object.</li>
<li><code>String uploadFileName</code> for the original filename.</li>
<li><code>String uploadContentType</code> for the MIME type.</li>
<li>Optional lists for multiple files.</li>
<li><code>File upload</code> 负责接收主文件对象。</li>
<li><code>String uploadFileName</code> 负责接收原始文件名。</li>
<li><code>String uploadContentType</code> 负责接收 MIME 类型。</li>
<li>多个文件时还可以再接文件列表。</li>
</ul>
<pre>public class FileUploadAction extends ActionSupport {
@@ -42,8 +42,8 @@
}</pre>
<div class="links">
<a class="btn" href="../../upload/index.jsp">Open upload demo</a>
<a class="btn" href="../../index.jsp">Back to portal</a>
<a class="btn" href="../../uploadPage.action">打开上传实验</a>
<a class="btn" href="../../index.action">返回门户</a>
</div>
</div>
</body>