JavaEE--JSP指令
2024-08-30 22:23:07
JSP指令用于提供整个JSP页面的相关信息以及用于JSP页面与容器之间的通信。JSP指令有三种:page指令、include指令、taglib指令
1.page指令
用于设定整个JSP页面的属性和相关功能,page指令共有11个属性
- contentType属性和pageEncoding属性: contentType属性指定JSP页面的MIME和编码格式<%@page contentType="text/html;charset=UTF-8"%> pageEncoding属性用来指定JSP文件的编码格式(JSP文件保存时选择的编码格式)<%@page contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>。其实pageEncoding和contentType这两个属性的关系很“暧昧”:当设 置了pageEncoding,而没设置contentType时: contentType的默认值为 pageEncoding;当设置了contentType,而没设置pageEncoding时: pageEncoding的默认值contentType;
- import属性:在JSP中引入Java的包和类,多个包之间以逗号隔开 <%@page import="mypackage.test.*,java.util.Date"%>
- session属性:指定当前页面是否能获得当前用户的session对象,缺省是true,如果指定为false,那么在该页面中无法使用session,使用的话会提示500错误。<%@page session="true"%>
- errorPage属性:如果当前页面发生异常,网页会重定向到errorPage所指定的页面进行处理<%@page errorPage="error.jsp" isErrorPage="false"%> 当前页面发生异常,并且没有对异常进行捕获的时候,跳转到error.jsp页面,不指定errorPage的话,画面上直接显示异常的相关信息,这样对使用的用户不是很友好
- isErrorPage属性:允许指定的JSP页面为错误处理页面
- language属性:指定页面中使用的脚本语言种类,目前只支持java <%@page language="java"%>
- extends属性:指定该JSP生成的servlet继承自哪个父类,必须指定包名加类名<%@page extends="mypackage.test.MyJspBase"%>
- buffer属性和autoFlush属性:buffer属性用来设置输出流缓冲区,缓冲区的作用就是为了提高IO性能,也就是说减少write的次数。autoFlush属性用来指定当输出流缓冲区满了的时候,是否自动刷新缓冲区,true的话,自动把缓冲区的内容输出到底层输出流,false的话,缓冲区满的话,会抛出IO异常。
- isThreadSafe属性:缺省值为true,指定该JSP文件是否支持多线程访问<%@page isThreadSafe="true"%> 此时,多个线程共用同一个servlet实例。<%@page isThreadSafe="false"%> 此时,每个线程都有一个自己的servlet实例,比较消耗内存资源,所以不建议使用
- info属性:设置该jsp文件的介绍信息 <%@page info="This is a jsp page."%>
- isELIgnored属性:标示是否支持EL表达式<%@page isELIgnored="true"%> 不支持EL表达式,EL表达式会被当做普通的html文本。<%@page isELIgnored="false"%> 支持EL表达式
2.include指令
表示在JSP编译时插入一个包含文件或者代码的文件,是一种静态包含
- include指令只有一个属性:file,指定要包含的页面,例如:<%@include file=”b.jsp”%>。静态包含:当hel.jsp页面包含了lo.jsp页面后,在编译hel.jsp页面时,需要把hel.jsp和lo.jsp页面合并成一个文件,然后再编译成Servlet(Java文件)。include指令所包含的文件名不能是一个变量url,只能是静态的文件名。 在被包含页面中,一般不包含标记,两个页面之间不能存在相同的局部变量。
3.taglib指令
声明JSP文件使用了标签库(JSP标准标签库,第三方标签库,自定义标签库)
- <%@taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core"%> 声明使用JSTL的核心标签库taglib指令让用户能够自定义标签
最新文章
- android中ProgressBar和ListView
- SDWebImage使用及原理
- 推荐一些不错的计算机书籍(php c mysql linux等等)
- Chromium浏览器高级开发系列第一篇:如何获取最新chromium源码
- Nginx并发访问优化
- [转]修改python默认的编码方式
- 4.编写Java应用程序。首先,定义一个时钟类——Clock,它包括三个int型 成员变量分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒) 进行初始化,还有一个成员方法show()用于显示时钟对象的时间。其次,再定义 一个主类——TestClass,在主类的main方法中创建多个时钟类的对象,使用这 些对象调用方法show()来显示时钟的时间。
- python &#39;%r&#39;或者&#39;{!r}&#39;的意思
- 钱管够,你能接这个项目吗?+ tomcat源码分析
- DR、BDR、SBR、ASBR等名词的解释和原理
- Python——列表、元祖、字典、集合的基本操作
- 【BZOJ3626】[LNOI2014]LCA
- Python打包方法——Pyinstaller
- python处理excel(二):写
- 鉴别JS数据类型的全套方法
- Codeforces Round #461 (Div. 2)
- 操作系统的启动与引导问题 BIOS、UEFI、MBR、GPT
- 第二天:让我们一起来玩玩css精灵(css sprites)
- sqlserver数据库使用空间监控
- Android开发:《Gradle Recipes for Android》阅读笔记1.3
热门文章
- 微信小程序_(组件)form表单
- 第八周课程总结 &; 实验报告(六)
- 作业要求20191010-4 alpha week 1/2 Scrum立会报告+燃尽图 02
- MYSQL中唯一约束和唯一索引的区别
- 构建基于Electron开发的软件遇到的问题
- LeetCode 47. 全排列 II(Permutations II)
- 使用 apt-get 清理
- hibernate本地验证
- 浏览器端-W3School-JavaScript:JavaScript 全局对象
- Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?