${ }和<%= %>的区别

  今天在做项目时,发现有的时候用${  }(EL表达式),有的时候用<%=  %>,于是就犯迷糊了。经过多次测试,最后得出如下结论(只供参考,有误,请指出,谢谢!)

          1.${  }主要用来获取request,session等的值,即放在scope里的值

     2.<%=  %>获取本页面所得的值

     3.两者直接不能通用

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <div style="background-color: #5b9bd5; color: white; padding: 10px;"> <span style="font-size: 20px; font-weight: bold;">我的网站</span> <a href="#" style="color: white; margin-left: 10px;">首页</a> <a href="#" style="color: white; margin-left: 10px;">产品</a> <a href="#" style="color: white; margin-left: 10px;">服务</a> <a href="#" style="color: white; margin-left: 10px;">关于我们</a> <a href="#" style="color: white; margin-left: 10px;">联系我们</a> </div> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.util.Date" %> <div style="background-color: #f5f5f5; padding: 20px;"> <h3>欢迎来到我们的网站</h3> <p>这是一个使用JSP include构建的网页示例。</p> <p>include指令允许我们将公共部分(如页眉、页脚)分离到单独的文件中,然后在多个页面中重用它们。<strong>注意辨析其与include动作元素的区别!</strong></p> <p>当前时间: <%= new Date() %></p> </div> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <div style="background-color: #5b9bd5; color: white; padding: 10px; text-align: center;"> <p>© 2025 我的网站 版权所有</p> <p>联系方式: info@mywebsite.com | 电话: 123-456-7890</p> </div> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>JSP页面包含示例</title> </head> <body> <%@ include file="header.jsp" %> <%@ include file="content.jsp" %> <%@ include file="footer.jsp" %> </body> </html>要运行图片
10-12
在JSP中,`<%! %>` `<% %>` 存在显著区别: - **用途与翻译位置**:`<%! %>` 用于声明变量方法,这些声明会被翻译成servlet类的成员变量或方法;而 `<% %>` 被称为脚本片段,其中的内容会被翻译到Servlet的Service方法中。例如,`<%! int count = 0; public void incrementCount() { count++; } %>` 里的 `count` 变量 `incrementCount` 方法会成为servlet类的成员;而在 `<% int localVar = 10; %>` 中,`localVar` 是Service方法里的局部变量[^1][^4]。 - **作用范围**:`<%! %>` 声明的变量方法在整个JSP页面中都有效,并且在不同请求中共享同一个实例;`<% %>` 内定义的变量是局部变量,只在当前脚本片段以及后续同一次请求处理的脚本片段中有效,不同请求间不会共享这些局部变量[^1]。 - **代码示例**: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSP <%! %>与<% %>区别示例</title> </head> <body> <%! int globalCount = 0; public void incrementGlobalCount() { globalCount++; } %> <% int localCount = 0; localCount++; incrementGlobalCount(); %> <p>全局计数器值: <%= globalCount %></p> <p>局部计数器值: <%= localCount %></p> </body> </html> ``` 在上述示例中,`globalCount` 是通过 `<%! %>` 声明的全局变量,每次请求都会对其进行累加;而 `localCount` 是 `<% %>` 内定义的局部变量,每次请求都会重新初始化为0。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值