A. jsp中static声明变量请往下看
你想用static控制抄什么输出啊袭?
明确的讲,在这里,“如果把声明中int j=0放到小脚本里”输出结果是正常的, 没有问题。
你面临的输出问题不是 static 的问题,而是J 的问题。
当jsp 被编译成servlet之后,形式如下:
public class MyJsp extends HttpServlet{
static int i =0;
int j = 0;
}
发现问题没有?j 是可以 累加的 , 而不是 每次刷新页面(也就是请求该servlet)时 重新归0的。
而 servlet spec 并没有规定 实现的容器 必须保证 只有一个 servlet实例 。 所以 一二次的结果不对劲很正常。
按照编程惯例来说, 类似j的声明是不被允许的, 将会面临 多线程 或者 与 spec不保证相关的 诸多问题。
B. 急:jsp页面中如何定义和引用变量
用<% .... %>就可以啊。
运行时,服务器是要先编译<% .... %>之间内容的。
在<body>里如何用,在<head>里就如何用,位置不影响对java语言的编译。
C. jsp 中的变量
给你个完整的答复好了
<%!%>里面声明的是全局变量,比如
<%!int i = 0 ;%>
<%=i++%>
首先是一个全局变量i=0,那么你每次刷新的话,变量i就会加1
<body>
<%! int i=0; %>
i=<%=i %><br>
i=<%=i++ %><br>
i=<%=i++ %>
i=<%=i+1%>
</body>
可以测试上面的代码,你猜每次刷新后结果是什么??测试了猜知道哦
<%%>里面声明的则是jsp的局部变量,刷新后变
<% int i = 0 ;%>
i=<%=i++%>
i=<%i+1%>
测试一下输出是多少??
<body>
<%! int i=0; %>
i=<%=i+1 %><br>
<% int i=2; %>
i2=<%=i+1 %><br>
</body
测试输出是多少???
记得加分!!
D. jsp定义变量问题
jsp页面中<%! %>内定义的是全局变量。
使用<%! %>定义的变量编译成servlet后成为专servlet的私有成员变量,在servlet环境属中,对于一个JSP页只允许有一个结果servlet的实例在运行和响应所有的页面请求。因此,在结果servlet中所有的成员变量可以被所有的请求所共享,所以只要成员变量没有重新赋值,下次访问该页面时仍然不变。而在<% %>中定义的变量编译成servlet后成为service()方法的一个本地变量,而service()方法中的本地变量只能每响应一次请求就重建一次。
E. JSP中<%%>中定义的变量和<%!%>中定义的变量有什么区别,thanks
1.注释:<%-- --%>,例如:<%-- 新增方法 --%>,相当于内Java中的/* 新增方法 */
2.指令标记:容<%@ %>,例如:<%@ page import="java.util.List" %>,相当与Java中的
import java.util.List;
当然,还有:<%@ include file="......" %>等
3.声明标记:<%! %>,例如:<%! private String name; %>,相当于Java中的private String name;声明一个属性
4.脚本标记:<% %>,例如:<% int i=0;%>,
5.表达式标记:<%= %>例如:<%=(2*5)%>,可以这么写<b>I am <%=(2*5)%></b>