<%!int a = 0;%>
<%
int b = 0;
a++;
b++;
%>
a:<%=a%><br>
b:<%=b%>
11 个解决方案
#1
<%! %> 声明语句 <%! Date myD = new Date(); %>
<% %> 代码语句 <% for(int i=0;i<10;i++) %>
<%@ %> 指令语句 <%@ page import="java.util.*" %>
<% %> 代码语句 <% for(int i=0;i<10;i++) %>
<%@ %> 指令语句 <%@ page import="java.util.*" %>
#2
声明变量
#3
相当一个全局常量
#4
<%!int a = 0;%> //声明的变量a在是成员变量,在此处生命的方法或变量不属于service()方法体
<%int b =0 %>//此处声明的变量在service方法中
//具体区别可以写一个测试的jsp,运行tomcat,到work子目录下查看对应生成的java文件就知道了
<%int b =0 %>//此处声明的变量在service方法中
//具体区别可以写一个测试的jsp,运行tomcat,到work子目录下查看对应生成的java文件就知道了
#5
高见
#6
看看这个
#7
<%!%>
这是一个整体符号,表示里面的内容是声名语句
这是一个整体符号,表示里面的内容是声名语句
#8
jsp请求会被翻译成servlet,编后执行,比如tomcat可以在work文件下找到翻译后的源码
一个servlet在服务器中只有一个对应实例
而servlet的service方法(doGet,doPost)是线程安全的,应用服务器给每一个客户端(线程)分配不同的内存区域(你可以理解为service方法里的局部变量)实现请求处理,而jsp中<%!int a = 0;%>
相当于是在servlet里声明了实例变量,每个客户端都会访问这个变量,所以你每次访问的都是同一个a,它是线程不安全的。
一个servlet在服务器中只有一个对应实例
而servlet的service方法(doGet,doPost)是线程安全的,应用服务器给每一个客户端(线程)分配不同的内存区域(你可以理解为service方法里的局部变量)实现请求处理,而jsp中<%!int a = 0;%>
相当于是在servlet里声明了实例变量,每个客户端都会访问这个变量,所以你每次访问的都是同一个a,它是线程不安全的。
#9
+1
#10
#11
楼上都正解
#1
<%! %> 声明语句 <%! Date myD = new Date(); %>
<% %> 代码语句 <% for(int i=0;i<10;i++) %>
<%@ %> 指令语句 <%@ page import="java.util.*" %>
<% %> 代码语句 <% for(int i=0;i<10;i++) %>
<%@ %> 指令语句 <%@ page import="java.util.*" %>
#2
声明变量
#3
相当一个全局常量
#4
<%!int a = 0;%> //声明的变量a在是成员变量,在此处生命的方法或变量不属于service()方法体
<%int b =0 %>//此处声明的变量在service方法中
//具体区别可以写一个测试的jsp,运行tomcat,到work子目录下查看对应生成的java文件就知道了
<%int b =0 %>//此处声明的变量在service方法中
//具体区别可以写一个测试的jsp,运行tomcat,到work子目录下查看对应生成的java文件就知道了
#5
高见
#6
看看这个
#7
<%!%>
这是一个整体符号,表示里面的内容是声名语句
这是一个整体符号,表示里面的内容是声名语句
#8
jsp请求会被翻译成servlet,编后执行,比如tomcat可以在work文件下找到翻译后的源码
一个servlet在服务器中只有一个对应实例
而servlet的service方法(doGet,doPost)是线程安全的,应用服务器给每一个客户端(线程)分配不同的内存区域(你可以理解为service方法里的局部变量)实现请求处理,而jsp中<%!int a = 0;%>
相当于是在servlet里声明了实例变量,每个客户端都会访问这个变量,所以你每次访问的都是同一个a,它是线程不安全的。
一个servlet在服务器中只有一个对应实例
而servlet的service方法(doGet,doPost)是线程安全的,应用服务器给每一个客户端(线程)分配不同的内存区域(你可以理解为service方法里的局部变量)实现请求处理,而jsp中<%!int a = 0;%>
相当于是在servlet里声明了实例变量,每个客户端都会访问这个变量,所以你每次访问的都是同一个a,它是线程不安全的。
#9
+1
#10
#11
楼上都正解