jsp页面中引用其他页面的简单方法

发布时间 - 2026-01-11 02:02:34    点击率:

初看这个标题....大家的感觉一定是好2啊.....博主一定要说jsp的动态引用(jsp:include)和静态引用(@include)了。介绍这两者区别的文章已经烂大街了。。一搜一大把。。博主竟然还来介绍这些老古董。。果断alt+F4。。。

如果你确实是这么想的。。。那请先别急着关闭页面。。。今天我来分享一下自己的理解,算是对烂大街的东西的一点补充吧。。。(后面文字会比较啰嗦)

首先先说明下为什么会去讨论这个话题。

我在写自己的博客程序的时候(blogv2.labofjet.com),程序中的目录是需要读取数据库中的数据的,而这个目录是要被多个页面引用的。这个时候该怎么办呢。

我那个时候用的是静态引用,在jsp页面中通过<%@include file="menu.jsp"%>引用这个目录的jsp页面片段(单独为目录做了一个jsp),缺点在于通过不同Controller跳转到不同的page的时候只要这个page包含目录的HTML片段,Controller里就需要去调用目录的dao的方法,然后去给request设置值,这样才能正常显示目录页面。

后来我想了想,我觉得最好能写一个servlet,访问这个servlet的url,就能得到目录的HTML片段,然后在不同的页面中,只要加载这个url就相当于加载了目录的HTML片段。这样的好处在于不同的controller里不再需要调用目录的dao了,只要有一个专门的目录Controller来处理目录的dao并设置request然后返回目录的page就行了。然后我就想到了jsp:include。。。。

然后我就百度了一下烂大街的东西。大部分文章都一个意思,jsp:include可以引用jsp,并动态编译。。blablabla。。。可是它们都没有说明jsp:include可不可以引用servlet呢?我们现在不会去把逻辑放到jsp中的,一般都是放到servlet中然后再跳转到jsp中吧。经过试验我发现是可以的。但是有一些地方比较坑。。。。。需要注意。。。

jsp:include引用jsp的时候完全OK,就是网上大部分文章介绍的内容。

jsp:include引用servlet的时候,这个servlet需要在web.xml里配置过,不然eclipse会给红色波浪线。

不知道大家看了上面的总结有没有产生一个新的问题:现在我们写程序的时候都用一些框架,比如SpringMVC,我们没有在web.xml为每个Servlet单独配置,而是通过SpringMVC自己的配置文件去配置这些Controller(Servlet)的。那么jsp:include还能用吗?

答案是可以的。。。。但是很坑。。。坑就坑在eclipse里还是会划红线,eclipse觉得找不到这个url对应的servlet,但是实际上是可以访问的。

另外还有个小问题,可能是我自己没设置对,我每次jsp:include的时候console里都会报java.io.IOException: Stream closed这个异常,我觉得可能是引用其他servlet的时候其他的servlet自动调用了out的close方法,导致包含其他page的page的内容不能被正常输出。。。。这个问题我没继续研究下去。。。。我想肯定是有解决办法的,但是不是我这篇文章要讨论的重点。

这么说的话现在就有2个小问题了:一个异常,一个eclipse的红线报错。。。虽然也能用,但是让人很不爽。。

所以就找一个替代方法吧。。那就是jstl的c:import

这个标签其实超级简单的。。。比如我把目录HTML片段对应的url设置成了/menu,那我在包含目录的页面中只要

<c:import var="data" url="/menu" />
${data}

就OK了。目录就被包含到其他页面中了。。是不是超级简单呀!

以上这篇jsp页面中引用其他页面的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# jsp页面引用其他页面  # 自己的  # 我在  # 我觉得  # 给大家  # 会报  # 跳转到  # 的是  # 都是  # 加载  # 我想  # 我就  # 如果你  # 让人  # 成了  # 看了  # 有个  # 是有  # 就能  # 多个  # 就有 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信公众帐号开发教程之图文消息全攻略  如何在云主机上快速搭建网站?  JS实现鼠标移上去显示图片或微信二维码  如何用y主机助手快速搭建网站?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  php json中文编码为null的解决办法  如何确保FTP站点访问权限与数据传输安全?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  Laravel Session怎么存储_Laravel Session驱动配置详解  Mybatis 中的insertOrUpdate操作  如何挑选优质建站一级代理提升网站排名?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何用IIS7快速搭建并优化网站站点?  如何注册花生壳免费域名并搭建个人网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  佛山企业网站制作公司有哪些,沟通100网上服务官网?  音响网站制作视频教程,隆霸音响官方网站?  音乐网站服务器如何优化API响应速度?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  如何用搬瓦工VPS快速搭建个人网站?  网站制作价目表怎么做,珍爱网婚介费用多少?  如何在景安服务器上快速搭建个人网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  昵图网官网入口 昵图网素材平台官方入口  制作公司内部网站有哪些,内网如何建网站?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何做网站制作流程,*游戏网站怎么搭建?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何登录建站主机?访问步骤全解析  用yum安装MySQLdb模块的步骤方法  Laravel如何保护应用免受CSRF攻击?(原理和示例)  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  在centOS 7安装mysql 5.7的详细教程  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例