JSP实践:使用JSP include机制改进外观

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> JSP 最佳实践系列 本系列文章并不打算完整地介绍 JSP 技术,也不打算作为如何构建特殊类型应用程序的指南。相反,系列文章中的每个部分都集中讨论用 JSP 技术编程的某一个方面,将它分成很小的片段。有关 JSP 技术的更广泛介绍或者对如何将它用于特殊结果的更深入研究,请参阅参考资料部分。 您将需要什么 本系列文章中的所有最佳实践都基于 JavaServer Pages 技术。要运行任何一种实践,需要在本地机器或测试服务器上设置符合 JSP 的 Web 容器,如 Apache Tomcat。您还需要使用文本编辑器或 IDE 编写 JSP 页面代码。请参阅参考资料,获取 Tomcat 和与 JSP 兼容的 Web 容器和 IDE 的清单的链接。 更好的外观 为 Web 页面创建一致的设计和布局是确保获得专业化外观的最容易方法之一。您或许看过足够多的网站,知道单个站点中的大部分页面都共用统一的页面头、页面尾以及某种类型的导航栏。在设计良好的站点上,这些元素将在每个页面上呈现相同的布局、内容和功能,而主面板(通常称为内容窗格)会随着每个视图而变化。 以前,这种布局几乎完全由框架和框架集实现。每段静态内容被放置在一个框架中,而页面的主体内容被放置在中间框架中。框架的麻烦就是不同的浏览器常常会以不同方式显示它们,使它们的外观不一致。使用框架从内部页面链接外部站点则比想像的更加困难。原本是想允许用户在不离开站点的情况下查看外部内容,但结果往往不一致。用户最终看到的是整个站点被挤进小得多的框架中,更糟的是,您的站点最终会嵌套在另一个站点框架中。这种混乱驱使 Web 设计者寻找一种更佳的解决方案。服务器端 include(server-side include,SSI)就是一种。 服务器端 include 不久前,SSI 还是用于创建共享内容的最受欢迎的选项之一。简单的 SSI 伪指令允许您创建包含另一个页面内容(如头和脚注文件)的页面,如清单 1 中所示。 清单 1. 正使用的 SSI <![CDATA[ <html> <head> <title>Simple SSI test</title> </head> <body> This content is statically in the main HTML file.<br /> <!--#include virtual="included.html" --> </body> </html> ]]> 我们不久将使用该文件来做一个练习。目前,您应该将它另存为 test-ssi.shtml。在大多数设置中,SSI 文件必须以 .shtml 结尾,这让 Web 服务器知道将它们解析为 SSI 伪指令。清单 2 显示了名为 included.html 的包含文件的内容。 清单 2. 包含的内容 <![CDATA[ This content is in another file, included.html ]]> 当请求 test-ssi.shtml 时,您将看到该文件的内容以及 included.html 的内容。您可以在任何支持 SSI 的 Web 容器(如 Apache Tomcat,请参阅参考资料)上查看这些文件。 从用户角度看,SSI 与框架相比有重大改进,因为在单个文件和从其它被包含文件引进内容的文件之间没有显而易见的差别。不利方面就是 SSI 需要一种特定的服务器设置,而 Java 开发人员常常无法使用这种设置。另外,SSI 通常要求被包含内容是静态的,尽管在后面的版本中加入了动态内容包含。 对于在网站或 Web 应用程序中包含不同类型的内容来说,SSI 是可行的解决方案,但它们不是 Java 开发人员的最佳选择。这不仅因为 JavaServer Pages 技术是替代 SSI 的全 Java 技术,还因为这两种技术不太容易结合在一起。JSP 页以扩展名 .jsp 结尾,这表示要使 SSI 伪指令起作用,必须更改 SSI 配置以解析 JSP 文件(给每个 JSP 页解析增加开销),或者更改 JSP 配置以将 .shtml 扩展名作为 JSP 页处理(这是一个坏主意)。对于 Java 开发人员来说,JSP 技术是最好的内容管理解决方案,幸运的是,其 include 机制很容易掌握。 JSP include JSP include 伪指令与其 SSI 对等伪指令极其相似。清单 3 显示了清单 1 所示的 SSI 伪指令的 JSP 对等伪指令。任何支持 JSP 的 Web 容器都将处理该 JSP 页的显示(同样,请参阅参考资料一节,以获得链接)。应该将该文件另存为 test-include.jsp。 清单 3. JSP include 伪指令 <![CDATA[ <%@ page language="java" contentType="text/html" %> <html> <head> <title>JSP include element test</title> </head> <body> This content is statically in the main JSP file.<br /> <%@ include file="included.html" %> </body> </html> ]]> include 伪指令使将统一的头文件和脚注文件合并到您的站点变得非常容易。清单 4 显示了具有几个被包含文件的主索引页。 清单 4. 主索引页的 JSP include 伪指令 <![CDATA[ <%@ page language="java" contentType="text/html" %> <html> <head> <title>newInstance.com</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="/styles/default.css" rel="stylesheet" type="text/css" /> </head> <body> <%@ include file="header.jsp" %> <%@ include file="navigation.jsp" %> <%@ include file="bookshelf.jsp" %> <%@ include file="/mt-blogs/index.jsp" %> <%@ include file="footer.jsp" %> </body> </html> ]]> 通过查看代码,您将了解有关如何使用 JSP include 的各种方法。您还应该试验一下该代码,让自己掌握其工作原理。 添加动态内容 除了如头、脚注和导航文件之类的静态内容外,清单 4 还包括对 Weblog(/mt-blogs/index.jsp)的调用,这涉及动态内容的主题。如同 SSI include 伪指令那样,当 JSP include 机制应用于动态内容时会出现问题。可以通过使用 JSP include 伪指令来引入动态内容,但将无法获得对该内容的更改。这是因为 Web 容器将被包含文件作为原始(包含)页面的一部分读取。容器将结果高速缓存为单个文件,而不是多个 JSP 组件。因为 Web 容器不会针对更改去轮询被包含文件,所以它不会知道有任何更改发生,它将自动显示高速缓存的页面而不是刷新的页面。要了解它的工作原理,我们将做一个简单的练习。首先,将已保存的 included.html 页面更新为清单 5 中所示的那样。 清单 5. 修改包含的内容 <![CDATA[ This content is in another file, included.html. <br /> Some new content... ]]> 接下来,保存这些更改,导航至 test-include.jsp 文件,刷新浏览器。您将注意到浏览器中没有显示 included.html 中的新内容。被包含文件的内容在更改发生之前就被高速缓存了,所以它不会显示出来。如果您的站点包含动态内容或可能被频繁修改的内容,那么这会是一个问题。幸运的是,有一个变通方法。在下一个部分中,我将向您演示如何使用 标记将动态内容加入 Web 页面。在此之前,请参考参考资料一节并试验这里提供的代码,我将在网上与您再见。 参考资料 要完成本系列文章中的练习,将需要与 JSP 兼容的 Web 容器,如 Apache Tomcat。 您可能还想要研究如何使用符合 JSP 的 IDE。您可以从下面几个 IDE 中选择: JUnit NetBeans Eclipse 有关 JSP 技术的基本详细信息,最好的办法是阅读 JSP 规范。 有关 JSP 技术的指导性介绍,请尝试阅读教程“JSP 技术入门”。 developerWorks 也提供了许多有关 JSP 及其相关技术的有一定深度的文章,包括下列文章: 摘自 Professional JSP(2001 年 2 月)的“JSP architecture”是有关 JavaServer Pages 技术的极佳初级读本。 “JSP 标记库:着意设计的更好的可用性”(2001 年 12 月)研究了 JSP 定制标记库工具,该工具允许您开发自己的用于描述 Web 页面组件的标记。 “利用 JSP 代码管理您的图像”(2002 年 11 月)讨论了许多本部分 JSP 最佳实践中提供的概念 ? 但集中讨论基于图像的内容。 Mark Kolb 撰写的 JavaServer Pages Standard Tag Library 系列文章(共四部分)为本系列文章所包含的最佳实践提供了一些后端理论。至本次截稿时间,仅发表了三篇文章:JSTL 入门:表达式语言(2003 年 2 月)介绍了 JSTL 和表达式语言(Expression Language);JSTL 入门:探讨 core(2003 年 3 月)通过讨论流控制和 URL 管理更进一步研究核心库;以及 Part 3, Presentation is everything(2003 年 4 月)集中讨论了用于国际化的 fmt 标记的使用。 Hans Bergsten 的 JavaServer Pages(O´Reilly & Associates,2002 年)是学习 JSP 技术的不可缺少的参考资料。 developerWorks 上的“Ten JSP technology books compared”有点儿过时(2001 年 6 月),但它仍出色地评论了非常有用的 JSP 标题。 如果您喜欢 JSP 最佳实践,也可以参考 developerWorks 上的 EJB best practices 系列文章。 JSP 技术基于 Java Servlet 技术。通过阅读 Jason Hunter 撰写的 Java Servlet Programming(O´Reilly & Associates,2002 年)学习有关 Servlet 的更多知识。 请参阅 developerWorks Java 技术教程页面,从 developerWorks 获取免费 Java 技术教程的完整列表。 在 developerWorks Java 技术专区可以找到数百篇有关 Java 编程各个方面的文章(包括有关 JSP 技术的更多文章)。
微信小程序 “net::ERR_CONNECTION_REFUSED” 报错大揭秘与破解之道 在微信小程序开发与运行过程中,“net::ERR_CONNECTION_REFUSED” 报错是开发者常遇难题。该错误意味着小程序与服务器连接建立失败,会导致功能无法使用、数据加载异常等问题,严重影响用户体验和业务运转。本文系统剖析此错误,从网络环境不佳、服务器异常、小程序配置有误等常见触发场景入手,提供网络、服务器、配置、代码等多维度排查步骤,给出针对性解决策略,如修复网络、处理服务器故障、修正配置与代码错误,还提出开发与运维阶段的预防措施,助力开发者高效解决该报错问题。 阅读详情

相关推荐

通达信缠论中枢自动识别与画线实战指南

本文详细介绍了通达信缠论中枢自动识别与画线公式的实战应用。该工具通过严谨的算法逻辑,自动在K线图上标记出符合缠论定义的中枢区间,帮助投资者摆脱繁琐的手工画图,聚焦于价格与中枢的互动关系,从而高效识别趋势延续、背驰及第三类买卖点,提升缠论分析与交易决策的效率。

weixin_29267307的博客 664

jsp页面高危漏洞的解决办法

&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;%@ page language

陈正的博客 1673

WEBGL Shader零基础教程(四):片元着色器核心逻辑

本文系统介绍了WebGL渲染管线中片元着色器的核心概念与应用。主要内容包括:1)片元着色器在渲染管线中的定位与作用,作为逐像素处理单元接收插值数据并计算最终颜色;2)输入数据类型与使用规则,重点讲解varying变量和uniform变量的应用场景;3)颜色计算的核心逻辑,涵盖基础色、渐变、纹理采样和颜色混合;4)进阶特效实现与性能优化技巧,包括交互效果、内置函数组合和GPU计算优化;5)通过综合案例演示了纹理、波纹与交互效果的整合实现。文章提供了完整的代码示例和调试建议,为后续学习光照模型、后期处理等高级渲

分享知识,拥抱变化 1374

JSP 最佳实践: 使用 JSP include 机制改进外观

将您的网站内容分成可管理的片段 本文是新的 JSP 最佳实践系列文章的第一部分,它介绍了 JavaServer Pages include 机制。请跟随 Java 编程专家 Brett McLaughlin 学习如何使用 include 将静态的头文件和脚注文件加入您的网站或 Web 应用程序页面中。 欢迎阅读 Java 专区中最新的 最佳实践系列文章。如果您看过先前的系列文章,那

kongji103的博客 428

2025年下半年网络工程师案例分析真题及答案解析

2025年下半年网络工程师案例分析真题及答案解析

鹿鸣天涯 1094

18.EC实战 新建项目工程并配置各个引脚的工作方式(持续更新)

本博文介绍了从零开始新建EC工程及对各个引脚进行了工作模式的初始化配置

qq_30135687的博客 1732

JSP中的include 机制

本文是新的 JSP 最佳实践系列文章的第一部分,它介绍了 JavaServer Pages include 机制。请跟随 Java 编程专家 Brett McLaughlin 学习如何使用 include 将静态的头文件和脚注文件加入您的网站或 Web 应用程序页面中。 欢迎阅读 Java 专区中最新的最佳实践系列文章。如果您看过先前的系列文章,那么您会知道最佳实践旨在让您快速了解各种 Java

347

Android 14 (AOSP) 源码架构深度解析与开发者指南

Android14源码的仓库指南信息

保持专注,保持热爱 1188

IBM developerWorks 中国 Java technology 文档库

JSP 最佳实践:用 jsp:include 控制动态内容JSP 最佳实践:使用 JSP include 机制改进外观http://www.ibm.com/developerworks/cn/views/java/articles.jsp?view_by=search&search_by=JSP+%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%EF%BC%9A 

chendehui4work的备忘录专栏(邮件地址:chendehui4work@163.com) 2389

在实车上进行lio-sam测试

PS:将雷达和imu相对固定后,拆下来,原地晃啊晃,直到xyz进度达到百分百,参考gif。标定完成后,会在result文件夹下生成result.txt。

如果想成为中心,那么就到中心去吧。 998

机器人行业面试全攻略:从0到1拿下心仪Offer,看这一篇就够了

【摘要】2026年机器人行业迎来爆发期,全球市场规模超800亿美元,人才争夺激烈。本文针对机器人行业面试提供系统攻略:首先需明确岗位方向、打造差异化标签并了解目标公司;技术面试高频考点包括ROS框架、SLAM导航、运动控制、深度学习和嵌入式系统;项目介绍需采用STAR+R结构并量化成果;行为面试需注意协作能力与职业规划。文章还总结了简历堆砌、单向输出等五大常见误区,强调长期积累与精准准备的重要性,助力求职者把握行业窗口期机会。

郑伟强dev的专栏 192

JSP总结(经典)

day1 JSP 定义:     1)Java Server Page, Java EE 组件,本质上是 Servlet。     2)运行在 Web Container.接收 Http Request,生成 Http Response(默认协议是 Http 请求和响应)      3)JSP 使得我们能够分离页面的静态 HTML 和动态部分——我们需要的技术。     4)使页面可以混

山不在高,有金则名 9397

服务部署之配置WSUS更新服务(基于Windows配置 Server 2022)

服务部署之配置WSUS更新服务(基于Windows配置 Server 2022)

2301_77192876的博客 2215

JSP复习

day01 JSP定义: 1)Java Server Page , JavaEE组件,本质上市servlet。 2)运行在Web Container上。接收HttpRequest,生成HttpResponse(默认是Http协议,请求和响应)。 3)JSP使得我们能够分离页面的静态HTML和动态部分。 4)是页面可以混合HTML代码、java代码以及JSP标签;允许访问组件。

dchchenghao的专栏 603

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

精通Struts:Tiles框架

概况    传统的GUI工具包,如Java AWT和Java Swing,都提供了一些功能强大的布局管理器,它们指定各个视图组件在窗口中的分布位置。布局管理器有助于创建复合式的复杂界面,一个复合式界面由一些 简单的基本界面组成。利用布局管理器来创建GUI界面有以下优点:    ·可重用性:基本界面可以被重用,组合成各种不同的复合式界面    ·可扩展性:可以方便的扩展基本界面,从而创建更复杂的界面...

翔的窝窝 134

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot实战:构建远程医疗咨询系统,毕业设计与学习指南

SpringBoot作为Java领域主流的Web应用开发框架,其核心价值在于通过约定大于配置的理念,快速构建可独立运行的、生产级的应用程序。其原理基于Spring生态,通过内嵌Servlet容器和自动配置,极大地简化了传统Spring MVC应用的初始搭建与部署流程。在技术价值上,SpringBoot特别适合用于快速原型开发和教学实践项目,能够帮助开发者聚焦业务逻辑而非环境配置。在应用场景中,诸如在线教育、电商平台、内容管理系统以及医疗健康信息系统等B/S架构项目,都是其典型落地领域。本文聚焦于一个结合了【

weixin_33744854的博客 487

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【课程设计】Springboot疫苗接种管理系统毕业设计-附源码191451

疫苗接种管理系统主要功能模块包括用户管理、个人接种、团体接种、接种医院、实时排队人数、疫苗接种提示等,采取本系统此次设计前端视图界面选择微信开发者工具来完成,系统功能设计由Java面向对象编程语言实现,系统开发工具选用IDEA,后台数据库为MySQL,项目管理工具选用Maven,总体的设计框架为最近很方便的springboot框架,实现了本系统的全部功能。 关键词:预防接种;Springboot框架;MySQL数据库...

Biye_Design的博客 7080

软考-系统分析师-备考笔记

根据学习视频和一些资料整理的软考系统分析师考试笔记,2025年下半年通关

提子同学是我 1029

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 303

第三篇 第 6 课

前置:第三篇第 1 课(stdx 引入),第二篇第 1 课(std.regex)。环境:仓颉 SDK 1.2.0。本文所有代码与输出均逐行实测。

weixin_41618057的博客 545

信创环境下PageOffice文档控件适配与实践

信创适配做到文档控件这一层,拼的已经不是"有没有国产版本",而是同一个功能在两类终端上是否真的等价。等价的标准很具体:同一次点击能得到同样的结果,同一份公文能得到同样的版式,同一个项目不需要维护两套代码。这背后是三件并不轻松的工作:服务端用一套接口同时支撑两类终端,客户端把两种系统与四种芯片的安装包分发清楚,文档内核层由产品侧跟着 WPS 的版本走。浏览器这一层的压力,则被收进了产品自己的窗口里——升级节奏由产品掌握,不再交给运气。

zi_wu_xian的专栏 333

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 576

Java 集合容器高频面试题全解:HashMap 树化阈值、1.7 死循环与 ConcurrentHashMap 演进(2026 招聘 JD 真题复盘)

HashMap 树化阈值 8 的泊松分布依据、退化阈值 6 的防抖设计、JDK 1.7 头插成环死循环的排查与修复、1.8 尾插后为何仍线程不安全、ConcurrentHashMap 放弃分段锁的原因与 ForwardingNode 协作扩容、computeIfAbsent 死锁陷阱、大集合找重复的场景题选型,附三层追问链自测。题目来源为 38 期公开招聘 JD 样本与字节、拼多多、建行、美团、快手公开面经。

蒙眼过河 423

spdlog 同步日志库使用详解

spdlog是一个轻量级 C++ 日志库,支持同步日志、异步日志、多线程日志、日志文件轮转和自定义日志格式。对于嵌入式 Linux 应用开发,我建议先使用。它可以帮我们完成:日志级别过滤。时间戳和线程 ID 输出。日志格式化。终端和文件输出。多线程安全写入。日志文件按大小或时间轮转。我们不需要自己实现互斥锁、文件写入、日志格式化和轮转等底层功能。

zengjiajun2006的博客 1121

JavaSE通关手册:数据类型与变量

代码无需额外处理,编译时编译器自动完成转换。

xys_678的博客 232

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 368
上一篇: 通过JDBC连接Oracle的十大灵活技术
下一篇: Java数据库编程中查询结果的表格式输出
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值