一、jsp运行原理
1、当JSP页面第一次被请求或改动后执行时,Tomcat将启动一个线程:该线程将.jsp文件翻译成.java文件,再将.java文件转换成.class文件,然后执行.class文件响应客户请求。
2、当该JSP页面再次被执行时,将直接执行字节码文件。
二、JSP的成员变量与成员方法
在标记符 <%! %> 内声明成员变量与成员方法。
1、成员变量在整个JSP页面内有效。
2、当多个客户请求同一个JSP页面时,Tomcat为每个客户启动一个线程,这些线程共享成员变量。因此每一个线程对成员变量的改动都会影响其它线程。
例如
<%!
int i=0;
public static int add(int p1,int p2){
return p1+p2;
}
%>
三、synchronized关键字
1、为了防止多个用户同时操作一个成员变量,可以对操作该变量的方法加锁。
2、加锁的办法是用synchronized关键字修饰该方法,当一个线程执行该方法时,其它线程只能等待。
例如
<%! long count = 0; //被客户共享的count
synchronized void setCount() //synchronized修饰的方法
{ count++;
}
%>
四、Java程序片 在 <% %> 之间写Java程序片。
1、在程序片中声明的变量称为页面局部变量。
2、页面局部变量在该页面中后续的所有程序片及表达式部分有效。
3、当多个客户请求一个JSP页面时,一个客户的局部变量和另一个客户的局部变量会被分配不同的内存空间。
4、因此,一个客户对页面局部变量的操作结果不影响其它客户的这个局部变量。
5、一个JSP页面可以有多个JAVA程序片,这些程序片被JSP引擎顺序执行。
语法格式如下:
<% JAVA程序片 %>
<%
int i=10;
for(int j=1;j<=i;j++){
%>
五、页面局部变量与成员变量的比较
1、变量的共享性:
成员变量:各个用户共享变量;
页面局部变量:用户间没有联系。
2、变量的初始化:
成员变量
页面被激活后,成员变量只被初始化一次;
页面局部变量
页面被激活后,每次有用户调用,页面局部变量都被初始化。
六、JSP中的Java表达式
<%
int i=10;
for(int j=1;j<=i;j++){
%>
<%=j %>
jsp基础知识
最新推荐文章于 2023-02-14 13:53:33 发布