“!”的区别,为什么在刷新时不同?

xsp 2003-10-15 04:31:34
<HTML>
  <HEAD><TITLE>JSP 页面 </TITLE></HEAD>
  <BODY>
<br>
<%@ page language="java" %>
<%! String str="0"; %>
初始值:  <%= str %><br>
<% for(int i=1; i < 10; i++) {
str = str + i;
} %>
JSP 计算后:

  <%= str %>
  <br>

<hr>

<% String str1="0"; %>
初始值:  <%= str1 %><br>
<% for(int i=1; i < 10; i++) {
str1 = str1 + i;
} %>
JSP 计算后:
  <%= str1 %>
  <br>


  </BODY>
  </HTML>
...全文
47 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsp 2003-10-16
  • 打赏
  • 举报
回复
感谢liad提供下面的贴子
http://expert.csdn.net/Expert/TopicView1.asp?id=2334719


谢谢大家。
aku0708 2003-10-16
  • 打赏
  • 举报
回复
就是与你说那样,好像我在哪看过,就是楼上说的那样
hj12 2003-10-16
  • 打赏
  • 举报
回复
<%! String str="0"; %>
就是这句话了,如果出了问题就在这里,你们难道忘了,“+”运算符号可能被从载了!
zkjbeyond 2003-10-16
  • 打赏
  • 举报
回复
有!为页面变量
没有!为私有变量!
举个例子!
class myBean()
{
private String aaa; //有i的定义。
public void getStr()
{
private String bbb; //无i的定义。

.......

}

}
他们主要是变量的修饰附不同!
rubyz 2003-10-16
  • 打赏
  • 举报
回复
看一看处理过后的jsp类文件就应该很清楚了
package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import org.apache.jasper.runtime.*;

public class test_jsp extends HttpJspBase {

String str="0"; /**********页面变量***********/

private static java.util.Vector _jspx_includes;

public java.util.List getIncludes() {
return _jspx_includes;
}

public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {

JspFactory _jspxFactory = null;
javax.servlet.jsp.PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;


try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=ISO-8859-1");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;

out.write("<HTML> \r\n隆隆 ");
out.write("<HEAD>");
out.write("<TITLE>JSP 脪鲁脙忙 ");
out.write("</TITLE>");
out.write("</HEAD> \r\n隆隆 ");
out.write("<BODY>\r\n ");
out.write("<br>\r\n ");
out.write("\r\n ");
out.write("\r\n鲁玫脢录脰碌拢潞隆隆 ");
out.print( str );
out.write("<br>\r\n");
for(int i=1; i < 10; i++) {
str = str + i;
}
out.write("\r\nJSP 录脝脣茫潞贸拢潞 \r\n\r\n隆隆 ");
out.print( str );
out.write(" \r\n隆隆 ");
out.write("<br> \r\n\r\n");
out.write("<hr>\r\n\r\n");
String str1="0"; /************局部变量*****************/
out.write("\r\n鲁玫脢录脰碌拢潞隆隆 ");
out.print( str1 );
out.write("<br>\r\n");
for(int i=1; i < 10; i++) {
str1 = str1 + i;
}
out.write("\r\nJSP 录脝脣茫潞贸拢潞 \r\n隆隆 ");
out.print( str1 );
out.write(" \r\n隆隆 ");
out.write("<br> \r\n\r\n\r\n隆隆 ");
out.write("</BODY> \r\n隆隆 ");
out.write("</HTML>");
} catch (Throwable t) {
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (pageContext != null) pageContext.handlePageException(t);
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
}
}
}
aku0708 2003-10-16
  • 打赏
  • 举报
回复
不会吧,我试一试
sandsworlf 2003-10-16
  • 打赏
  • 举报
回复
!在jsp中定义的是变量声明
xsp 2003-10-16
  • 打赏
  • 举报
回复
谁能给我解释一下,“!”在jsp中有什么特殊作用?
yangjuanli 2003-10-15
  • 打赏
  • 举报
回复
我也不知道为什么,友情UP!
clare0peng 2003-10-15
  • 打赏
  • 举报
回复
是啊,這就是頁面變量和一般變量的不同
它保存了原來的值
xsp 2003-10-15
  • 打赏
  • 举报
回复
不一样啊,下面是刷新4次后的结果。

初始值:  0123456789123456789123456789123456789
JSP 计算后:   0123456789123456789123456789123456789123456789  

--------------------------------------------------------------------------------
初始值:  0
JSP 计算后:   0123456789  
aku0708 2003-10-15
  • 打赏
  • 举报
回复
是怎么样变化呢,是不是都是0,1,2,3,4,5,6,7,8,9,10这样变呢
我看是一样的吧

81,092

社区成员

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

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