格式: <%@ page isThreadSafe="true" %> <%-- Default --%>
<%@ page isThreadSafe="false" %>
目的: 告诉服务端,你的代码是否线程安全,如果不安全,服务器将阻止并发访问.
注意: 尽量避免这种用法(
<%@ page isThreadSafe="false" %>)!
原因有2:第一,某些情况下严重影响系统性能!第二,某些情况下得不到正确的结果!
其他办法还是有的,比如下面一段非线程安全的代码(要求ID唯一):
<%! private int idNum = 0; %>
<%
String userId = "userID" + idNum;
out.println("Your id is : " + userId + ".");
idNum += 1 ;
%>
根本不需要指定isThreadSafe为"false":
<%! private int idNum = 0 ; %>
<%
synchronized(this){
String userId = "userID" + idNum ;
out.println("Your id is : " + userId + ".");
idNum += 1 ;
}
%>
在高业务环境中,上述代码仍然可以获得较好的性能!
并且如果服务器采用实例共享的方案,指定isThreadSafe为"false"还是要失败!
分享到:
相关推荐
page指令是JSP指令中最基本的一种,它控制JSP页面转换成Servlet的许多方面。接下来,我们将详细介绍page指令的具体用法及其各种属性。 一、JSP指令概述 JSP指令影响由JSP页面生成的Servlet的整体结构。JSP指令的两...
Page 指令中可以指定多种属性,例如 language、extends、import、session、errorPage、autoFlush、isErrorPage、contentType、buffer、info、isELIgnored、isELEnabled、isScriptingEnabled、isThreadSafe 和 ...
- **isThreadSafe属性**:指示页面是否线程安全,true表示支持多线程请求,false则按顺序处理。 **1.2 include指令** include指令用于动态地包含其他文件的内容,可以是静态HTML或另一个JSP页面,增强代码复用性。...
page指令用于设置JSP页面的全局属性,其作用范围涵盖整个JSP文件。下面列出了一些关键的page指令属性: 1. **language**:定义JSP页面所使用的脚本语言,默认是Java。 2. **extends**:指定生成的Servlet类应继承的...
第12章 控制所生成的servlet的结构:jsppage指令 12.1 import属性 12.2 contenttype和pageencoding属性 12.3 条件性地生成excel电子表格 12.4 session属性 12.5 iselignored属性 12.6 buffer和autoflush...
首先,page指令是JSP页面最常用的指令之一,它用于设置页面的相关属性,如下所示: 1. page指令的主要属性及其作用: - extends="package.class":定义JSP页面生成的Servlet类需要继承的父类或实现的接口。默认...
7. isThreadSafe属性:page指令的isThreadSafe属性(选项C)用来设定JSP页面是否支持多线程访问。 8. include指令:include指令标签(选项C)用于在JSP页面中静态地插入另一个文件。 9. JSP内置对象:JSP的内置...
page指令可以控制多个方面,包括但不限于: 1. **导入类**:通过`import`属性指定要导入的类,可以在servlet定义的顶部生成相应的导入语句。 2. **指定MIME类型**:通过`contentType`属性设置页面返回给客户端时的...
`<%@ page>` 指令用于设置JSP页面的全局特性,它可以定义多种属性,包括但不限于以下: - `language`: 指定脚本语言,默认为Java。例如:`<%@ page language="java" %>` - `extends`: 定义Servlet的超类,允许...
- isthreadsafe属性指示JSP是否线程安全,默认是true。 - session属性决定页面是否参与HTTP会话。 - errorpage属性指定错误页面。 9. JSP语法要点: - <!-- This file displays the user login screen -->是...
Page 指令 定义JSP文件中的全局属性. JSP 语法<%@ page [ language=”java” ] [ extends=”package.class” ] [ import=”{package.class | package.*}, …” ] [ session=”true | ...
1. **page指令**:作用于整个JSP页面,定义了许多与页面相关的属性,这些属性将被用于和JSP容器通信。page指令的语法形式如下: ```jsp <%@ page attr1="value1" attr2="value2" ... %> ``` 在JSP规范中,还...
7. **多线程访问属性**:page指令的isThreadSafe属性控制JSP页面是否支持多线程访问,选项C是正确的。 8. **静态包含文件**:include指令标签用于在JSP页面中静态插入另一个文件,选项C描述了这一功能。 9. **JSP...
**page指令**用于定义JSP页面的一些全局属性,这些属性对整个页面有效,包括静态的包含文件。但在被动态包含的文件中不可使用。`page`指令可以出现在页面中的任何位置,并且可以在一个页面中多次出现,但每个属性...
- 一个JSP页面中可以有多个`<%@ page %>`指令,但同一属性只能设置一次,除非是`import`属性,因为它类似Java的`import`语句,可以多次使用。 - `page`指令的作用范围是整个JSP页面,不论它被放在文件的哪个位置。...
Page指令用于设置整个JSP页面的行为属性,例如指定脚本语言、导入类库等。 - **language**:指定脚本语言,默认为Java。 - **import**:声明要使用的包和类。 - **contentType**:设置页面返回内容的类型及编码方式...
- `isThreadSafe`: 是否支持多线程访问,通常为`"true"`。 - `info`: 提供关于Servlet的信息。 - `errorPage`: 错误页的URL,当发生错误时跳转至此。 - `isErrorPage`: 如果为`"true"`,表示该页面是错误处理...
7. `page`指令的`isThreadSafe`属性:`isThreadSafe`属性可以设置JSP页面是否支持多线程访问,选项C正确。 8. 静态插入文件:`include`指令标签可以用于在JSP页面中静态插入另一个文件,选项C正确。 9. JSP内置...