直接改后缀为.jsp并添加page指令是运行前提,否则jsp无法编译、内置对象不可用且中文乱码;文件须放webapp目录下,路径需用${pagecontext.request.contextpath}适配上下文。

直接改后缀 + 加 page 指令就能跑,但不加编码声明或放错位置,JSP 会乱码、报错甚至被当成纯 HTML 返回。
改文件名和加 指令是硬性前提
Tomcat 等容器只认 .jsp 后缀才会触发 JSP 编译器;没这行指令,request、out 等内置对象可能不可用,中文还会变问号。
- 把
index.html重命名为index.jsp(右键 → 重命名,确保系统没自动补.txt) - 在文件最顶部(DOCTYPE 前面)插入:
- 不要写成两行,比如
单独一行 + 另起一行写—— 这会导致编译失败 - 如果原 HTML 已有
<meta charset="UTF-8">,保留它,它管浏览器解码;JSP 指令管服务器输出编码,二者不冲突但缺一不可
静态内容里插 Java 表达式要小心转义和空格
直接把 <p>欢迎张三</p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill5806" title="html-deploy"><img
src="https://img.php.cn/upload/skill/000/000/081/179066538882434.jpg" alt="html-deploy" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill5806" title="html-deploy" class="overflowclass">html-deploy</a>
<p class="overflowclass">使用 htmlcode.fun 将 HTML 内容或文件部署到网页,适用于用户要求“部署到网页”“托管此 HTML”“生成此前端...的实时链接”等场景。</p>
</div>
<a rel="nofollow" href="/xiazai/skill5806" title="html-deploy" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div> 换成 <p>欢迎</p> 看似简单,但实际容易出错。
-
里不能写带分号的语句,只能是表达式(如user.getName()),写String name = "a";会编译报错 - 如果属性值可能为
null,别裸写,应加判空: - HTML 标签内嵌 JSP 表达式时,前后别留多余空格,比如
<div class="<%= " active>"> 比 <code><div class=" <%= " active>"> 更安全,后者可能生成 <code>class=" active"导致样式失效 - 避免在 JS 字符串里混用
${}和,比如var name = "";是 OK 的,但var name = "${username}";需确认已启用 EL(默认 Tomcat 7+ 开启,老版本需加isELIgnored="false") - CSS/JS 图片路径别写
./css/style.css,改用上下文路径:<link rel="stylesheet" href="%24%7BpageContext.request.contextPath%7D/css/style.css"> - 表单
action别指向process.html,要指向process.jsp或后端 Servlet,比如:<form action="%24%7BpageContext.request.contextPath%7D/servlet/SubmitServlet" method="post"></form> - 如果项目部署在 ROOT 上下文(即访问地址是
http://localhost:8080/),${pageContext.request.contextPath}为空字符串,仍建议保留——换环境时不用改代码 - 静态资源(如
images/logo.png)放在webapp/images/下,而非WEB-INF/images/(后者无法被浏览器直连)
资源路径和表单 action 必须适配 Web 容器部署结构
JSP 不再是双击打开的本地文件,所有相对路径都以 Web 应用根目录(如 /myapp/)为基准,不是以文件系统路径为准。
最容易被忽略的是:JSP 文件必须放在 webapp/(或 src/main/webapp/)下,不能放在 WEB-INF/ 或 src/main/java/ 里;否则容器根本不会加载它,404 都不会报,而是返回空白页或原始 JSP 源码(说明配置已失效)。










