求<%!a=1;%>与<%a=1;%>的区别??

shangxpor 2008-10-18 10:50:31
求jsp文件中的<%!a=1;%>与<%a=1;%>的区别??他们的原理,以及在Sevlet中代码意义! 求高手!!!
不是JavaScript中的 越详细越好 谢谢
...全文
169 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sou2012 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yinyuan1987 的回复:]
<%!%>这个是脚本元素中的声明,声明脚本元素用于声明字jsp页面的脚本语言中使用的变量和方法。
生命必须是完整的声明语句,遵照Java语言的语法。声明不会在当前的输入流中产生任何输出。

<%%>是脚本段,它是在请求处理期间要执行的java代码段。脚本段可以产生输出,并竟输出发送到客户端,也可以是一些流程控制语句。在脚本段中可以声明本地变量,在后面的脚本段中一样可以使用该变量


后台原理:
利用 <%!%>声明的…
[/Quote]

学习....
wang8 2008-10-22
  • 打赏
  • 举报
回复
学习了
shangxpor 2008-10-22
  • 打赏
  • 举报
回复
怎么给分??
freeworrier 2008-10-19
  • 打赏
  • 举报
回复
哦 看错了 <% %> 这个是小脚本。 你可以看翻译后 work 目录下的java文件 实际上除了声明的内容 都在一个方法内。
写在小脚本的内容 是 原样的抽取到java文件中,其他的 都是 out.print() 输出的。
freeworrier 2008-10-19
  • 打赏
  • 举报
回复
<%! %> 这个是声明。 就是写在这里面的 是 jsp转成servlet 后的 成员属性 成员方法。
<%= %> 这个是表达式。 输出变量等。 和 out.println() out.print() out.write() 作用都差不多,大同小异 表达式运用更灵活。
realcbb 2008-10-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yinyuan1987 的回复:]
<%!%>这个是脚本元素中的声明,声明脚本元素用于声明字jsp页面的脚本语言中使用的变量和方法。
生命必须是完整的声明语句,遵照Java语言的语法。声明不会在当前的输入流中产生任何输出。

<%%>是脚本段,它是在请求处理期间要执行的java代码段。脚本段可以产生输出,并竟输出发送到客户端,也可以是一些流程控制语句。在脚本段中可以声明本地变量,在后面的脚本段中一样可以使用该变量


后台原理:
利用 <%!%>声明的…
[/Quote]

说得很好,同样在servlet中声明的全局变量也是危险的吧?
ZiSheng 2008-10-19
  • 打赏
  • 举报
回复
8楼的很准确
lihan6415151528 2008-10-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yinyuan1987 的回复:]
<%!%>这个是脚本元素中的声明,声明脚本元素用于声明字jsp页面的脚本语言中使用的变量和方法。
生命必须是完整的声明语句,遵照Java语言的语法。声明不会在当前的输入流中产生任何输出。

<%%>是脚本段,它是在请求处理期间要执行的java代码段。脚本段可以产生输出,并竟输出发送到客户端,也可以是一些流程控制语句。在脚本段中可以声明本地变量,在后面的脚本段中一样可以使用该变量


后台原理:
利用 <%!%>声明的…
[/Quote]
很详细
  • 打赏
  • 举报
回复
这样应该解释清楚了,问题解决了吧!(不清楚再说)
呵呵,结帐吧!
  • 打赏
  • 举报
回复
<%!%>这个是脚本元素中的声明,声明脚本元素用于声明字jsp页面的脚本语言中使用的变量和方法。
生命必须是完整的声明语句,遵照Java语言的语法。声明不会在当前的输入流中产生任何输出。

<%%>是脚本段,它是在请求处理期间要执行的java代码段。脚本段可以产生输出,并竟输出发送到客户端,也可以是一些流程控制语句。在脚本段中可以声明本地变量,在后面的脚本段中一样可以使用该变量


后台原理:
利用<%!%>声明的变量,在JSP容器转换JSP页面为Servlet类时,将作该类的实例变量或者类变量(声明时使用了static关键字),在多用户并发访问时,将导致线程安全的问题,除非你确认是单用户访问或者变量是只读的。(这里不讨论线程安全的问题)

而<%%>,在JSP容器转换JSP页面为Servlet类时,页面中的代码会按照代码段中出现的次序,
依次被转换为_jspService()方法中的代码,在脚本段生命的变量,将作为_jspService()方法中的本地变量,
因此脚本段中的变量是线程安全的
nietangkun1977823 2008-10-19
  • 打赏
  • 举报
回复
建议使用<%= %>比较好,jsp页面定义变量和方法时尽量少使用全局的。
不过脚本<% %>在页面的使用也不要过于频繁,一般要控制每个<% %>内5-7行代码!
paozi201 2008-10-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yinghan2005 的回复:]
引用 3 楼 ZangXT 的回复:
如果是
<%!int a=1;%>的话,会在jsp对应的类里定义一个成员int a=1;

<%int a=1;%>则是在jsp对应的_jspService方法中定义一个局部变量a

可以根据这个去分析你的问题.


[/Quote]

要不就是题目错误
humcomm 2008-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ZangXT 的回复:]
如果是
<%!int a=1;%>的话,会在jsp对应的类里定义一个成员int a=1;

<%int a=1;%>则是在jsp对应的_jspService方法中定义一个局部变量a

可以根据这个去分析你的问题.
[/Quote]
ZangXT 2008-10-18
  • 打赏
  • 举报
回复
如果是
<%!int a=1;%>的话,会在jsp对应的类里定义一个成员int a=1;

<%int a=1;%>则是在jsp对应的_jspService方法中定义一个局部变量a

可以根据这个去分析你的问题.
orz_ORZ_orz 2008-10-18
  • 打赏
  • 举报
回复
呵呵,类型都没有,题目错误的。
<%! %>声明的变量,在jsp页面转换为servlet类时,
会作为该类的实例变量或类变量,慎用
ZangXT 2008-10-18
  • 打赏
  • 举报
回复
题目就是错误的.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧