page指令下的import属性
“通过该属性来引用脚本语言中使用到的类文件”,这官方的说法好绕啊!是和java里的import一样的用法吧?
“通过该属性来引用脚本语言中使用到的类文件”,这官方的说法好绕啊!是和java里的import一样的用法吧?
2016-10-05
使用 page 指令的 import 属性指定 JSP 页面转换成的 servlet 应该输入的包。在 JSP 中,包是绝对必需的。原因是,如果没有使用包,系统则认为所引用的类与当前类在同一个包中。例如,假定一个 JSP 页面包含下面的 scriptlet:
<% Test t=new Test(); %>
在此,如果 Test 在某个输入包中,则没有歧义。但是,如果 Test 不在包中,或者页面没有明确地导入 Test 所属的包,那么系统将会认为 Test 就在这个自动生成的 servlet 所在的包中。但问题是自动生成的 servlet 所在的包是未知的!服务器在创建 servlet 时,常常会根据 JSP 页面所在的目录来决定它的包。别的服务器可能使用其他不同的方式。因此,不能指望不使用包的类能够正常工作。对于 bean 也同样如此,因为 bean 不过是遵循某些简单命名约定和结构约定的类。
默认情况下,servlet 导入 Java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*,也许还包括一些服务器特有的包。编写 JSP 代码时,绝不要依靠任何自动导入的服务器特有类。这样做会使得代码不可移植。
使用 import 属性时,可以采用下面两种形式:
<%@ page import="package.class" %>
<%@ page import="package.class1, ..., package.classN" %>
例如,下面的指令表示 java.util 包和 cn.foololdfat 包中的所有类在使用时无需给出明确的包标识符:
<%@ page import="java.uti1.*, cn.foololdfat.*" %>
import 是 page 的属性中惟一允许在同一文档中多次出现的属性。尽管 page 指令可以出现在文档中的任何地方,但一般不是将 import 语句放在文档顶部附近,就是放在相应的包首次使用之前。
举报