IT兄弟连 JavaWeb教程 JSP中的三大指令
指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中。也就是说,指令标识对于客户端浏览器是不接见的。JSP页面的指令标识与我们的身份证类似,虽然公民身份证可以标识公民身份的,但是它并没有对所有见到过我们的人都公开。
JSP指令语法
JSP指定标识的语法格式如下:
<%@ 指令名 属性1="属性值1" 属性2="属性值2" ...%>
参数说明:
指令名:用于指定指令名称,在JSP中包含page、include和taglib3条指令
属性:用于指定属性名称,不同的指令包含不同的属性。在一个指令中可以设置多个属性,各属性之间用逗号或空格隔开。
属性值:用于指定属性值。
JSP的三大指令
1.page指令
page是JSP页面最常用的指令,用于定义整个JSP页面的相关属性,这些属性在JSP中被服务器解析成Servlet时会转换为响应的Java程序代码,page指令的语法格式如下:
<%@ page attr1="value1" attr2="value2" ... %>
page指令包含的属性有15个,下面对一些常用的属性进行介绍。
(1)language属性
该属性用于设置JSP页面使用的语言,目前只支持Java语言,以后可能会支持其他语言,如C++、c#等。该属性的默认值为Java。
<%@ pagge language="java" %>
(2)extends 属性
该属性用于设置JSP页面继承的Java类,所有JSP页面在执行之前都会被服务器解析成Servlet,而Servlet是由Java类定义的,所以JSP和Servlet都可以继承指定的父类。该属性并不常用,而且有可能影响服务器的性能优化。
(3)import属性
该属性用于设置JSP导入的类包。JSP页面可以嵌入Java程序代码块,这些Java代码再调用API时需要导入相应的类包。
<%@ page import="java.util.*" %>
(4)pageEncoding属性
该属性用于定义JSP页面的编码格式,也就是指定文件编码。JSP页面中所有代码都是用该属性指定的字符集,如果该属性值设置为ISO-8859-1,那么这个JSP页面就不支持中文字符。通常设置编码格式为UTF-8,因为它可以显示目前世界上所有的文字。
<%@ page pageEncoding="UTF-8" %>
(5)contentType属性
该属性用于设置JSP页面的MIME类型和字符编码,浏览器会根据此属性显示网页内容。
<%@ page contentType="text/html;charset=UTF-8" %>
(6)session属性
该属性指定JSP页面是否使用HTTP的session会话对象。其属性值是boolean类型,可选值为true和false。默认值为true,表示可以使用session会话对象:如果设置为false,则当前JSP页面将无法使用session会话对象。
<%@ page session="false" %>
上述代码设置JSP页面不使用session对象,任何对session对象的引用都会发生错误。
(7)buffer属性
该属性用于设置JSP的out输出对象使用的缓冲区大小,默认大小为8kb,且单位只能使用KB,建议程序开发人员使用8的倍数16、32、64、128等,作为该属性的属性值。
<%@ page buffer="128KB" %>
(8)autoFlush属性
该属性用于设置JSP页面缓存满时,是否自动刷新缓存。默认值为true,如果设置为false,则缓存填满时将抛出异常。
<%@ page autoFlush="false" %>
(9)isErrorPage属性
通过该属性可以将当前JSP页面设置成错误处理页面,以处理另一个JSP页面的错误,也就是异常处理。这意味着当前JSP页面业务的改变。
<%@ page isErrorPage="true" %>
(10)errorPage属性
该属性用于指定处理当前JSP页面异常错误的另一个JSP页面,指定的JSP错误处理页面补习设置isErrorPage属性为true,errorPage属性的属性值是一个url字符串。
<%@ errorPage="error/loginErrorPage.jsp" %>
2.include指令
文件包含指令include是JSP页面的另一条指令标识,通过该指令可以在一个JSP页面中包含另一个JSP页面。不过该指令是静态包含,也就是说被包含文件中所有内容会被原样包含到该JSP页面中,即使被包含文件中又JSP代码,在包含时也不会被编译执行。使用include指令,最终将生成一个文件,所以在被包含和包含的文件中,不能有相同名称的便令。include指令的语法格式如下:
<%@ include file="path" %>
该指令只有一个file属性,用于指定要包含文件的路径。该路径可以是相对路径,也可以是绝对路径,但是不可以通过<%= %>表达式所代表的文件。
使用include指令包含文件可以大大提高代码的重用性,而且也便于以后的维护和升级。
3.taglib指令
在JSP文件中,可以通过使用taglib指令标识声明该页面中所使用的标签库,同时引用标签库,并制定标签库的前缀。在页面中引用标签库后,就可以通过前缀来引用标签库中的标签。taglib指令的语法格式如下:
<%@ taglib prefix="tagPrefix" uti="tagURI" %>
参数说明:
prefix:用于指定标签的前缀。该前缀不能命名为jsp、jspx、java、javax、sun、servlet和sunw。
uri:用于指定标签库文件的存放位置
实例代码如下:
<%@ taglib prefix="c" url=http://java.sun.com/jsp/jstl/core %>
IT兄弟连 JavaWeb教程 JSP中的三大指令的更多相关文章
- IT兄弟连 JavaWeb教程 JSP中的注释
由于JSP页面由HTML.JSP.Java脚本等组成,所以在其中可以使用多种注释格式 HTML中的注释 HTML语言的注释不会被显示在网页中,但是在浏览器中选择查看网页源代码时,还是能够看到注释的信息 ...
- IT兄弟连 JavaWeb教程 JSP定义
JSP页面是指扩展名为.jsp的文件,在一个JSP页面中,可以包括指令标识.HTML代码.JavaScript代码.嵌入的Java代码.注释和JSP动作标识等内容.但这些内容并不是一个JSP页面所必须 ...
- IT兄弟连 JavaWeb教程 JSP访问JavaBean
在JSP网页中,既可以通过程序代码来访问JavaBean,也可以通过特定的JSP标签来访问JavaBean.采用后一种方法,可以减少JSP网页中的程序代码,使他更接近与HTML页面.下面介绍访问Jav ...
- IT兄弟连 JavaWeb教程 JSP经典面试题
1.JSP标准提供了三种独立的向JSP添加Java代码的技术,请列举. <% %>JSP程序代码块,内部可以直接嵌入Java代码. <%! %>JSP声明区,内部可以声明变量和 ...
- IT兄弟连 JavaWeb教程 JSP内置对象1
JSP内置对象定义 JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它们起到了简化页面的作用,JSP的内 ...
- IT兄弟连 JavaWeb教程 JSP语法
在JSP页面中,脚本标识使用的最为频繁,因为他们能够方便.灵活地生成页面中的动态内容,特别是JSP程序代码块.JSP中的脚本标识包括3部分,即JSP声明区.JSP表达式和JSP程序代码块.通过这些标识 ...
- IT兄弟连 JavaWeb教程 JSP内置对象经典面试题
1.请说明cookie.request.session.application的作用域和声明周期? 并说明它们适用与什么场景? request的生命周期是一次请求.可以用于JSP表单提交数据. ses ...
- IT兄弟连 JavaWeb教程 JSP内置对象经典案例
案例需求:使用MVC模式编写一个程序当发起一个deptList.do请求时在servlet中准备一个部门列表对象,把这个列表对象放入request作用域中,然后转发到deptlist.jsp,使用js ...
- IT兄弟连 JavaWeb教程 JSP内置对象3
读取web.xml配置信息的config对象 config对象主要用于取得服务器的配置信息.通过pageContxt对象的getServletConfig()方法获取一个config对象.当一个Ser ...
随机推荐
- EasyHLS直播在Linux非root用户运行时出现无法写文件的问题解决mkdir 0777
今天在Github上收到一个用户反馈的EasyHLS在linux上非root用户调用时,无法写目录的问题:https://github.com/EasyDarwin/EasyHLS/issues/3, ...
- LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
1 什么是“module machine type” 这个是当前工程要链接的静态库的target machine type. 2 什么是“target machine type” 这个是当前工程生成的 ...
- Composite Pattern
1.将对象组合成树形结构以表示“部分--整体”的层次结构.组合模式使得用户对单个对象和组合对象的使用具有一致性. 2.Composite 模式结构图 3.实现 #ifndef _COMPONENT_H ...
- Python序列——元组
元组是什么 1 创建元组 2 访问元组中的值 3 更新元组中的元素 4 删除元组中的元素或者元组本身 元组相关操作 内建函数对元组的支持 1 序列类型函数 2 元组内建函数 元组的特殊性 1. 元组是 ...
- poj 1363 Rails (【栈的应用】 刘汝佳的写法 *学习)
Rails Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25964 Accepted: 10199 Descripti ...
- Codeforces Round #383 (Div. 2) D. Arpa's weak amphitheater and Mehrdad's valuable Hoses —— DP(01背包)
题目链接:http://codeforces.com/contest/742/problem/D D. Arpa's weak amphitheater and Mehrdad's valuable ...
- Codeforces Round #394 (Div. 2) C. Dasha and Password —— 枚举
题目链接:http://codeforces.com/problemset/problem/761/C C. Dasha and Password time limit per test 2 seco ...
- java多线程-多线程常识
线程和进程的区别是什么?进程是一个正在运行的软件程序,打开资源管理器可以看到好多正在运行的进程,而线程则是程序中的顺序控制流,只能使用分配给程序的资源和环境.一个进程至少存在一个线程(主线程). 在j ...
- nyoj 1030 hihocoder 1338
题目链接1: 点这里打开. 题目链接2: 点击打开链接 思路:dp,dp[i][j] 表示某个人在区间 i,j上的得分. sum数组表示前 n 项和, num 数组用来存输入的数字. 因为取数字是 ...
- BZOJ_2208_[Jsoi2010]连通数_强连通分量+拓扑排序+手写bitset
BZOJ_2208_[Jsoi2010]连通数_强连通分量+拓扑排序+手写bitset Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i ...