JSP编译指令

page指令

  page指令作用于整个JSP页面,其定义了与页面相关的一些属性,这些属性将被用于和JSP服务器进行通信。

  page指令的语法如下:

  <%@ page属性1=“属性值属性2=“属性值……%>

  XML形式为:<jsp:directive.page属性1=“属性值属性2=“属性值…/>

  page指令有13个属性。

1language="scriptingLanguage"

  该属性用于指定在脚本元素中使用的脚本语言,默认值是java

2extends="className"

  该属性用于指定JSP页面转换后的Servlet类所继承的父类,属性的值是一个完整的类名。

3 import="importList"

  该属性用于声明在JSP页面中可以使用的Java类。属性的值和Java程序中的import声明类似,该属性的值是以逗号分隔的导入列表,例如:

  <%@ pageimport="java.util.Vector" %>

  <%@ page import="java.io.*" %>

  要注意的是,page指令中只有import属性可以重复使用。如果不写该属性,import默认引入以下4个包:java.lang.*javax.servlet.*javax.servlet.jsp.*javax.servlet.http.*

4session="true|false"

  该属性用于指定在JSP页面中是否可以使用session对象,默认值是true

5buffer="none|sizeKB"

  该属性用于指定out对象使用的缓冲区大小,如果设置为none,将不使用缓冲区,所有的输出直接通过ServletResponsePrintWriter对象写出。该属性的值以KB为单位,默认值是8KB

6autoFlush="true|false"

  该属性用于缓冲区满时,缓存的输出是否应该自动刷新。如果设置为false,当缓冲区溢出的时候,一个异常将被抛出。默认值为true

7isThreadSafe="true|false"

  该属性用于指定对JSP页面的访问是否是线程安全的。如果设置为true,则向JSP容器表明这个页面可以同时被多个客户端请求访问。默认值是true

8 info="info_text"

  该属性用于指定页面的相关信息,该信息可以通过调用Servlet接口的getServletInfo()方法来得到。

9 errorPage="error_url"

  该属性用于指定当JSP页面发生异常时,将转向哪一个错误处理页面。

  注意:如果一个页面通过使用该属性定义了错误页面,那么在web.xml文件中定义的任何错误页面将不会被使用。

10 isErrorPage="true|false"

  该属性用于指定当前的JSP页面是否是另一个JSP页面的错误处理页面。默认值是false

11contentType="type"

  该属性指定用于响应的JSP页面的MIME类型和字符编码,中文页面中必须要设置。例如:<%@page contentType="text/html;charset=gb2312" %>

12 pageEncoding="peinfo"

  该属性指定JSP页面使用的字符编码。如果设置了这个属性,则JSP页面的字符编码使用该属性指定的字符集,如果没有设置这个属性,则JSP页面使用contentType属性指定的字符集,如果这两个属性都没有指定,则使用字符集“ISO-8859-1”

13isELIgnored="true|false"

  该属性用于定义在JSP页面中是否执行或忽略EL表达式。如果设置为trueEL表达式将被容器忽略,如果设置为falseEL表达式将被执行。

  注意:无论将page指令放在JSP文件的哪个位置,它的作用范围都是整个JSP页面。

  为了JSP程序的可读性,以及养成良好的编程习惯,应该将page指令放在JSP文件的顶部。

include指令

  include指令用于在JSP页面中静态包含一个文件,该文件可以是JSP页面、HTML网页、文本文件或一段Java代码。使用了include指令的JSP页面在转换时,JSP服务器会在指令出现的位置插入所包含文件的文本或代码。

  include指令的语法为:

  <%@ include file="relativeURL"%>

  XML语法格式的include指令为:

  <jsp:directive.include  file="relativeURL"/>

  其中file属性值为相对于当前JSP文件的URL

例:

<%@page contentType="text/html;charset=gb2312" %>

<html>

<head><title>欢迎你</title></head>

 <body>

 欢迎你,现在的时间是

 <%@ include file="date.jsp" %>

 </body>

 </html>

 date.jsp

 <% out.println (new java.util.Date (). toLocaleString ()); %>

  • 使用include编译指令的好处:

  可以将一个复杂的JSP页面分割成若干个简单的、能进行单独处理的部分。这种方式大大增强了JSP页面的管理性和灵活性及扩展型。当要修改页面时,可以只单独对要修改的包含文件进行修改即可。

  •   注意事项:

         1)在test1.jsp中进行 <%@ include file="test2.jsp" %>出现错误。

错误为:Multiple annotations found at this line:
- Duplicate local variable path
- Duplicate local variable

解决方法:

法I:将test2.jsp中的path和basepath改为其他名字 

法II:将test2.jsp中的path和basepath删除

taglib指令

  taglib指令允许页面使用用户自定义的标记。taglib指令的语法如下:

  <%@ taglib (uri="tagLibraryURI"| tagdir="tagDir")prefix="tagPrefix"%>

  XML语法的格式为:

  <jsp:directive.taglib (uri="tagLibraryURI"| tagdir="tagDir")prefix="tagPrefix"/>

taglib指令的三个属性:

1 uri

  该属性惟一地标识和前缀(prefix)相关的标签库描述符,可以是绝对或者相对的URI。这个URI被用于定位标记库描述符的位置。

2tagdir

  该属性指示前缀(prefix)将被用于标识安装在/WEB-INF/tags/目录或其子目录下的标签文件。

3prefix

  定义一个prefix:tagname形式的字符串前缀,用于区分多个自定义标签。以jsp:jspx:java: javax:servlet:sun:sunw:开始的前缀被保留。前缀的命名必须遵循XML名称空间的命名约定。

  JSP2.0规范中,空前缀是非法的。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法

WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 原文:WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法问题描述 今天发现如果我想在一个TextBlock弄一个右键菜单,并且使用Command绑定,结果发现默认菜单式不可用的. 问题原因…

Syntax error on tokens, delete these tokens

可能出现的错误&#xff1a; 弄错了引号括号之类造成&#xff1b; 在代码前过多空格&#xff0c;特别是对于那些黏贴来的代码&#xff1b;

1698 -Access denied for user 'root@xxxx'

grant all privileges on *.* to userlocalhost Identified by password WITH GRANT OPTION; grant all privileges on *.* to root% Identified by password WITH GRANT OPTION; 予任何主机访问数据的权限 3、MySQL>FLUSH PRIVILEGES修改生效 4、MySQL>EXIT 退出MySQL服…

严重: StandardServer.await: create[localhost:8005]

①看看任务管理器&#xff0c;是否打开了多个Tomcat程序 如果是&#xff0c;关闭其中一个 ②可能是端口冲突 1、将tomcat安装目录下的conf/server.xml中的8005端口号改为其它的端口号。&#xff08;不建议&#xff0c;因为会衍生出其他错误&#xff09; 2、将正在使用的8005端…

ACdream区域赛指导赛之手速赛系列(2)

版权声明&#xff1a;本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/DaiHaoC83E15/article/details/26187183 回到作案现场&#xff1a;http://acdream.info/onecontest/1014 前言&#xff1a;自己出份山寨版的解题报告。 - - - - - - - - - - - - - - - …

java里short,int,long,float,double范围及可写位数

一、取值范围 1、int二进制位数&#xff1a;32 包装类&#xff1a;java.lang.Integer最小值&#xff1a;Integer.MIN_VALUE -2147483648 &#xff08;-2的31次方&#xff09;最大值&#xff1a;Integer.MAX_VALUE 2147483647 &#xff08;2的31次方-1&#xff09;2、short 二…

第六周编程总结

6-1 求两数平方根之和 &#xff08;10 分) 函数fun的功能是&#xff1a;求两数平方根之和&#xff0c;作为函数值返回。例如&#xff1a;输入12和20&#xff0c;输出结果是&#xff1a;y 7.936238。 函数接口定义&#xff1a; double fun (double a, double b); 其中 a和 b是用…

【CH5105】Cookies

也是一道线型动态规划的好题…… 读入每个人的贪婪度之后&#xff0c;对其按照从大到小的顺序排序&#xff0c;定义状态f[i][j]为前i个人&#xff08;排序后&#xff09;分j个饼干的答案&#xff0c;那么答案为f[n][m],考虑状态转移方程。 1、若给第i个人的饼干数大于1 &#x…

POJ 3614 Sunscreen

Sunscreen Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 12907 Accepted: 4534Description To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her hide with sunscreen when theyre at the beach. Cow i has a minimum…

十六进制转八进制(java)

问题描述  给定n个十六进制正整数&#xff0c;输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n &#xff08;1<n<10&#xff09;。  接下来n行&#xff0c;每行一个由0~9、大写字母A~F组成的字符串&#xff0c;表示要转换的十六进制正整数&#xff0…

sharing-jdbc实现读写分离及分库分表

需求&#xff1a; 分库&#xff1a;按业务线business_id将不同业务线的订单存储在不同的数据库上&#xff1b; 分表&#xff1a;按user_id字段将不同用户的订单存储在不同的表上&#xff0c;为方便直接用非分片字段order_id查询&#xff0c;可使用基因法&#xff1b; 读写分离&…

java中math类方法之数学运算(pow,exp,三角函数,指数)

Math中定义了许多的方法&#xff0c;通过Math类就能直接调用&#xff0c;均为static类型。 1、 调用形式:Math.方法名2、三角函数方法&#xff1a; static double sin(double a ) &#xff1a; 返回角的三角正弦static double cos(double a) &#xff1a; 返回角的三角余弦s…

java中如何将数字转换成字符串(int转换为string)

String s "123"; int n 12; 方法一:通过包装类来实现String ss String.valueOf(n); 方法二:直接通过空字符串数字的形式转换为字符串String ss ""n;// 方法三:强制类型转换String ss &#xff08;String&#xff09;n;

UVa 297 四分树

感觉特别像那个分治的日程表问题。是f的话就填&#xff0c;否则就不填&#xff0c;然后同一个表填两次。那么就是最后的结果。 1 #include <iostream>2 #include <cstring>3 #include <string>4 #include <map>5 #include <set>6 #include <a…

java二维数组初始化(动态,静态)

int[][] anew int[][]{{1,2},{3,4},{5,6,7,8,9},{}}; System.out.println(a.length);//4,表示数组的行数 System.out.println(a[0].length);//2&#xff0c;表示对应行的长度 System.out.println(a[1].length);//2 System.out.println(a[2].length);//5 …

JS中for in 与 for of

// 数组var A[4,6,74,67]; for in:拿到的是数组下标 for (let i in A){ console.log(i); } //0&#xff0c;1&#xff0c;2&#xff0c;3 for of:拿到的是数组元素 for (let i of A){ console.log(i); } 字符串 var str"hellllo world"; for in:拿到的是字符串下标 f…

蓝桥杯(java)阶乘计算,输入一个正整数n,输出n!的值。(高精度计算,用到数组)

问题描述输入一个正整数n&#xff0c;输出n!的值。其中n!1*2*3*…*n。算法描述n!可能很大&#xff0c;而计算机能表示的整数范围有限&#xff0c;需要使用高精度计算的方法。使用一个数组A来表示一个大整数a&#xff0c;A[0]表示a的个位&#xff0c;A[1]表示a的十位&#xff0c…

代码大全阅读笔记01

软件开发过程中的不同活动&#xff1a;定义问题、需求分析、规划构造、软件架构&#xff08;或高层设计&#xff09;、详细设计、 编程与调试、单元调试、集成测试、集成、系统测试、保障测试。构建活动主要是编码与调试&#xff0c;但也有其他 的活动。 构建软件重要的原因&am…

系统日志

也可以通过dos命令来打开’事件查看器‘&#xff1a;按下组合键winr,然后输入’eventvwr.exe‘,然后回车就可以打开了。 OpenEventLog转载于:https://www.cnblogs.com/hshy/p/10684294.html

基础练习 高精度加法(蓝桥杯 java)

问题描述输入两个整数a和b&#xff0c;输出这两个整数的和。a和b都不超过100位。 算法描述由于a和b都比较大&#xff0c;所以不能直接使用语言中的标准数据类型来存储。对于这种问题&#xff0c;一般使用数组来处理。定义一个数组A&#xff0c;A[0]用于存储a的个位&#xff0c;…