jsp中<%%> 与<%!%>的区别是什么?

详细点? 那位大侠会 在线等
2025-05-08 21:29:45
推荐回答(4个)
回答1:

< % % >和< % !%>的不同之处在于:翻译不同,定义不同,声明不同。

一、翻译不同

1. <%%>:将<%%>的内容转换为Servlet的服务方法。

2.< % !% >: < %!%>的内容被直接翻译到Servlet类中。

二、定义不同

1. <%%>: <%%>定义局部变量或调用方法,但不能定义方法。

2.< % !% >: < %!局部变量和方法不能仅由%>定义。

三、声明不同

1.<%%>:<%%>不能声明方法、属性、全局变量。

2.< % !% >: < %!%>可以声明方法、属性和全局变量。

回答2:

jsp中<%%> 与<%!%>的区别为:翻译不同、定义不同、声明不同。

一、翻译不同

1、<%%> :<%%> 的内容会翻译在Servlet的Service方法中。

2、<%!%>:<%!%>的内容会直接翻译在Servlet类中。

二、定义不同

1、<%%> :<%%> 定义局部变量或者调用方法,但不能定义方法。

2、<%!%>:<%!%>不可以定义局部变量和方法。

三、声明不同

1、<%%> :<%%>不可以声明方法、属性、全局变量。

2、<%!%>:<%!%> 可以声明方法、属性、全局变量。

回答3:

唯一区别(作用):

1、<% %>叫做脚本片段,其中写的内容会翻译在Servlet的Service方法中,显然我们可以在Service方法中定义局部变量或者调用其他方法,

但是不能在Service中再定义其他的方法,也就是我们可以在<%%>中定义局部变量或者调用方法,但不能定义方法。在jsp页面可以有多个脚本片段,但是多个脚本片段之间要保证结构完整。

2、<%!%>称作声明,其中写的内容将来会直接翻译在Servlet类中,因为我们可以在类中定义方法和属性以及全局变量,所以我们可以在<%!%>中声明方法、属性、全局变量。

3、<%=%>称作jsp表达式,用于将已经声明的变量或者表达式输出到网页上面。

扩展资料

特点

能以模板化的方式简单、高效地添加动态网页内容。可利用JavaBean和标签库技术复用常用的功能代码(设计好的组件容易实现重复利用,减少重复劳动)。

标签库不仅带有通用的内置标签(JSTL),而且支持可扩展功能的自定义标签。继承了Java语言的相对易用性。

脚本变量

1、out:JSPWriter,用来写入响应流的数据;

2、page:servlet自身;

3、request:HTTP request(请求)对象;

4、response:HTTP response(响应)对象;

5、session:HTTP session(服务端会话)对象。

参考资料来源:百度百科-JSP

回答4:

前者定义的是局部的变量的,后者是定义的全局变量方法

<%! %>里声明的变量和方法都是作为类的属性和方法存在的,<% %>里不能声明方法
而<% %>里声明的变量则是作为_jspService这个方法的内部属性