欢迎来到天天文库
浏览记录
ID:38215555
大小:22.11 KB
页数:5页
时间:2019-06-07
《jsp page指令详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、jsppage指令详解一、JSP指令JSP指令(directive)影响由JSP页面生成的servlet的整体结构。下面的模板给出指令的两种可能形式。属性值两边的双引号可以替换为单引号,但引号标记不能完全省略。如果要在属性值中使用引号,则要在它们之前添加反斜杠,'使用',"使用"<%directiveattribute="value"%><%directiveattribute1="value1"attribute2="value2"......attribute3="value3"%>在JSP中,主
2、要有3种类型的指令:page,include和taglib。page指令允许通过类的导入、servlet超类的定制、内容类型的设置、以及诸如此类的事物来控制servlet的结构。page指令可以放在文档中的任何地方。第二个指令,include允许在JSP文件转换到servlet时,将一个文件插入到JSP页面中。include指令应该放置在文档中希望插入文件的地方。第三个指令,taglib,定义自定义的标记标签。二、JSPpage指令page指令可以定义下面这些大小写敏感的属性(大致按照使用的频率列出):i
3、mport、contentType、pageEncoding、session、isELIgnored(只限JSP2.0)、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSafe、language和extends。2.1import属性使用page指令的import属性指定JSP页面转换成的servlet应该输入的包。在JSP中,包是绝对必需的。原因是,如果没有使用包,系统则认为所引用的类与当前类在同一个包中。例如,假定一个JSP页面包含下面的scr
4、iptlet:<%Testt=newTest();%>在此,如果Test在某个输入包中,则没有歧义。但是,如果Test不在包中,或者页面没有明确地导入Test所属的包,那么系统将会认为Test就在这个自动生成的servlet所在的包中。但问题是自动生成的servlet所在的包是未知的!服务器在创建servlet时,常常会根据JSP页面所在的目录来决定它的包。别的服务器可能使用其他不同的方式。因此,不能指望不使用包的类能够正常工作。对于bean也同样如此,因为bean不过是遵循某些简单命名约定和结构约定的类
5、。 默认情况下,servlet导入java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*,也许还包括一些服务器特有的包。编写JSP代码时,绝不要依靠任何自动导入的服务器特有类。这样做会使得代码不可移植。使用import属性时,可以采用下面两种形式:<%@pageimport="package.class"%><%@pageimport="package.class1,...,package.classN"%>例如,下面的指令
6、表示java.util包和cn.foololdfat包中的所有类在使用时无需给出明确的包标识符:<%@pageimport="java.uti1.*,cn.foololdfat.*"%> import是page的属性中惟一允许在同一文档中多次出现的属性。尽管page指令可以出现在文档中的任何地方,但一般不是将import语句放在文档顶部附近,就是放在相应的包首次使用之前。2.2contentType和pageEncoding属性 contentType属性设置Content-Type响应报头,标明即将发送
7、到客户程序的文档的MIME类型。有关MIME类型的更多信息,参见JavaWeb开发(5)HTTP响应报头。使用contentType属性时,可以采用下面两种形式:<%@pagecontentType="MIME-TYPE"%><%@pagecontentType="MIME-Type;charset=Character-Set"%>例如,指令<%@pagecontentType="application/vnd.ms-excel"%>和下面的scriptlet所起到的作用基木相同<%responce.se
8、tContentType("application/vnd.ms-excel");%>两种形式的第一点不同是,response.setContentType使用明确的Java代码(这是一些开发人员力图避免使用的方式),而page指令只用到JSP语法。第二点不同是,指令被特殊处理,它们不是在出现的位置直接成为_jspService代码。这意味着response.setContentType能够有条件地调用,而page指令不能。条
此文档下载收益归作者所有