1、JSP指令相关介绍
JSP除了各种不同的HTML和JSP标签,还有几种特殊的结构可用于JSP中,如指令、声明、脚本和表达式。
<%@ 这是一个指令>:用于指示JSP解释器执行某个操作或者对文件作出假设(例如使用哪种脚本语言)、导入类、在转换时包含其他JSP或者包含JSP标签库
<%!这是一个声明>:用于在JSPservlet类的范围内声明一些东西,例如可以定义实例变量、方法或声明标签中的类。
<% 这是一个脚本>:同声明一样,脚本中也包含了Java代码。不够脚本有着不同的作用域。声明中的代码将在转换时被复制到JSP servlet类的主体中,并且他们可用于声明某些字段、类型和方法,而脚本则将被复制到_jspService方法的主体中。
<%= 这是一个表达式>:表达式包含了一些简单的Java代码,可用于想客户端输出一些内容,他将把代码的返回值变量输出到客户端。因此可以再表达式中执行数学计算,因为数值结果是可以显示在客户端的。还可以调用一些返回字符串、数字或其他原生类型的方法,因为这些类型的返回值都是可显示的。
在JSP中导入类如:<%@ page import="java.util.* , java.io.IOException">多个导入以逗号形式隔开。
2、使用指令
2.1、修改页面属性
pageEncoding
指定JSP所使用的字符编码,等同于HttpServletResponse中的setCharacterEncoding方法。可以在page指令中使用contentType=“text/html” pageEncoding="UTF-8"取代contentType=“text/html;charset=UTF-8”
session
只能为真或假,表示jsp是否将参加http会话。默认为真。
isELlgnored
该特性指定jsp编译器是否将解析和转换jsp中的表达式语言(EL)jsp2.0以前默认为真,意味着对于希望使用表达式的每一个jsp页面,都需要将他设置为假。但是jsp2.0后默认值设置为假,意味着不需要在担心这个设置了。
buffer和autoFlush
这两个有着紧密的联系,他们的默认值分别是“8kb"和真。他们决定了jsp的输出方式:是生成之后立即发送到浏览器中,还是先将输出缓存起来,再按批次发送到浏览器。buffer指定jsp缓存的大小,而autoFlush则表示是否在它达到大小限制之后就自动刷新缓存。
errorPage
如果在jsp的执行过程中出现错误,该特性将告诉容器应该将请求转发到哪个jsp。
isErrorPage
该特性表示当前的jsp是否被用作错误页面(默认为假)。如果设置为真,在该jsp中将可以使用隐式的exception变量。
isThreadSafe
默认值为真,该特性表示当前的jsp可以安全滴同时处理多个请求。如果修改为假,容器将把请求逐个发送到该jsp。
extends
该特性指定了当前jsp servlet的父类。使用了该特性的jsp将无法从一个web容器迁移到另一个容器,他也不是必须使用的。
2.2 包含其他的jsp
<%@ include file="/path/to/some/file.jsp">
2.3 包含标签库
<%@ taglib uri="http://java.sun.com/jsp/kst1/core" prefix="c" %">