• JSP命令标签 静态包含/动态包含


    好 下面我们聊聊JSP中的指令标签
    这边 我们来说两个 分别是 静态包含 和 动态包含
    我们可以将重用性代码包含起来 更好的使用

    比如 我们界面上中下 分别有三个导航栏 那么 如果你写三份 就会出现很多重复代码 而且 改起来 也很不方便 要一次改三份

    口说无凭 我们来做一个小案例
    我们先在 jsp同目录下创建两个 jsp页面文件 分别叫 header.jsp 和 footer.jsp
    在这里插入图片描述
    然后 我们这里 写简单一点吧 header.jsp代码如下

    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    DOCTYPE html>
    <html>
    <head>
        <title>头部title>
    head>
    <body>
        <h1>头部部分h1>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    footer.jsp 这样写

    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    DOCTYPE html>
    <html>
    <head>
        <title>尾部title>
    head>
    <body>
    <h1>尾部部分h1>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    这里 我们都只是放了个H1 然后 展示一个文本信息

    然后 我们主界面 jsp这样写

    先通过静态包含include引入我们刚刚写的两个jsp文件页面部分
    这里 不需要担心ile文件路径写错 因为 idea比较只能 你写错了 他会直接给你报红的 如果能显示正常一般就没问题了

    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    DOCTYPE html>
    <html>
    <head>
        <title>JSP - Hello Worldtitle>
    head>
    <body>
    <%@include file="header.jsp"%>
    <%@include file="footer.jsp"%>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    然后 我们启动项目
    在这里插入图片描述
    效果也是非常的完美 我们两个jsp页面的内容就被导入进来了

    这样 如果我们界面有什么重复的东西 就可以单独写一个界面 然后 要用的地方导入就可以了
    而且最大的好处 就是 如果你有一个地方要改 你一改 全部地方就统一改变了 不需要你一个一个改 搞不好还某个忘记了

    然后 是我们的动态包含

    我们将公共jsp改成这样

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    DOCTYPE html>
    <html>
    <head>
        <title>JSP - Hello Worldtitle>
    head>
    <body>
    <h1>公共区域h1>
    <%
        String dom = "Hello World";
    %>
    <jsp:include page="header.jsp">
        <jsp:param name="keyname" value="<%=dom%>"/>
    jsp:include>
    <jsp:include page="header.jsp">
        <jsp:param name="keyname" value="你好世界"/>
    jsp:include>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    我们将 header.jsp 改成动态的包含形式 然后传递了一个参数 键为 keyname 值的话 我们写了两个
    一个定义在java代码中 叫 Hello World
    另一个 直接写在了属性里 叫 你好世界
    然后 我们将 header.jsp代码更改如下

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    DOCTYPE html>
    <html>
    <head>
        <title>头部title>
    head>
    <body>
        <%
            request.setCharacterEncoding("UTF-8");
            String keyname = request.getParameter("keyname");
        %>
        <h1><%=keyname%>h1>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    我们先用 setCharacterEncoding 将编码格式转为 UTF-8
    然后通过getParameter 接受键为keyname的属性 然后输出在 H1标签上
    运行结果如下
    在这里插入图片描述
    一般来讲 无脑用 动态包含就好了

    他们的区别在于 静态包含会将他们合成一个文件 例如 你在 B页面中静态包含 A 然后 你两个jsp都声明一个叫 name的属性 会报错重名 因为他们会合成一个文件

    而静态包含 你两个文件都声明name 没问题 因为 动态包含只是相当于 A是个函数 B调用了他 生成出来的是两个分开的文件

  • 相关阅读:
    头歌平台 | 逻辑函数及其描述工具logisim使用
    用灵活的依赖排除策略来规避不必要的依赖关系
    ESP8266-Arduino编程实例-GP2Y1010AU0F灰尘传感器驱动
    cv_bridge和opencv 记录
    【java基础学习】之DOS命令
    k8s之pod控制器
    植隆业务中台与金蝶云星空对接集成服务工单查询接口连通应收单新增(6202-开票申请(代理商-销售类))
    Vue封装路由跳转方法,vue-router对query传参进行加密解密
    java面试题第七天
    【解决错误】ModuleNotFoundError: No module named ‘progress‘
  • 原文地址:https://blog.csdn.net/weixin_45966674/article/details/134496092