JSP指令包括下面几种:
1.include指令,包含指定的文件内容到当前页面中
<%@ include file="title.jsp"%>
2.page指令,该指令包含的属性较多,下面逐一介绍
2.1 language属性,指定页面中使用的脚本语言种类,目前只支持java
<%@ page language="java"%>
2.2 extends属性,用于指定该JSP生成的servlet继承自哪个父类,必须指定包名加类名
<%@ page extends="mypackage.test.MyJspBase"%>
2.3 import属性,导入指定的包,和java的import功能类似
<%@ page import="mypackage.test.*,java.util.Date"%>
下面的包会自动导入,所以在JSP页面中不需要明确导入
java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*
2.4 session属性,指定JSP页面中是否可以使用session,缺省是true,如果指定为false,那么在该页面中无法使用session,使用的话会提示500错误。
<%@ page session="true"%>
此时,在生成的java代码中会看到下面的内容:
javax.servlet.http.HttpSession session = null;
session = pageContext.getSession();
2.5 buffer属性和autoFlush属性
buffer属性用来设置输出流缓冲区,缓冲区的作用就是为了提高IO性能,也就是说减少write的次数。
autoFlush属性用来指定当输出流缓冲区满了的时候,是否自动刷新缓冲区,true的话,自动把缓冲区的内容输出到底层输出流,false的话,缓冲区满的话,会抛出IO异常。
2.5.1
<%@ page buffer="none" autoFlush="true"%> 没有输出流缓冲区
生成的java代码如下,如果autoFlush设置为false,那么会提示500错误:
pageContext = _jspxFactory.getPageContext(this, request, response,
"error.jsp", true, 0, true);
2.5.2
<%@ page buffer="50kb" autoFlush="false"%> 设置输出流缓冲区为50kb,不指定的话缺省为8kb
生成的java代码如下:
pageContext = _jspxFactory.getPageContext(this, request, response,
"error.jsp", true, 51200, false);
此时,如果输出流缓冲区的内容>=50kb的话,会出现500错误,提示buffer overflow
所以,自己控制缓冲区刷新的话,需要在合适的时间点手动调用out.flush()方法来刷新缓冲区,以免出现buffer overflow
2.6 isThreadSafe属性,缺省值为true,指定该JSP文件是否支持多线程访问
<%@ page isThreadSafe="true"%> 此时,多个线程共用同一个servlet实例
<%@ page isThreadSafe="false"%> 此时,每个线程都有一个自己的servlet实例,比较消耗内存资源,所以不建议使用
此时生成的java代码如下(实现了SingleThreadModel接口,此接口已经不建议使用了)
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent,
javax.servlet.SingleThreadModel {
2.7 info属性,用来设置该jsp文件的介绍信息
<%@ page info="This is a jsp page."%>
生成的servlet中会增加下面这个方法:
public java.lang.String getServletInfo() {
return "This is a jsp page.";
}
所以在jsp中可以直接嵌入下面的java代码在页面上显示jsp的介绍信息:
<%
out.println(getServletInfo());
%>
2.8 errorPage属性和isErrorPage属性
<%@ page errorPage="error.jsp" isErrorPage="false"%> 当前页面发生异常,并且没有对异常进行捕获的时候,跳转到error.jsp页面,不指定errorPage的话,画面上直接显示异常的相关信息,这样对使用的用户不是很友好
因为相当于forward到error.jsp页面,所以在error.jsp页面里面可以访问前一个画面传递过来的request中的属性和参数。比如request.getAttribute()方法以及request.getParameter()方法
error.jsp
<%@ page isErrorPage="true"%>
和isErrorPage="false"相比,生成的java代码中,_jspService方法中会多出下面的代码
java.lang.Throwable exception = org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);
if (exception != null) {
response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
2.9 contentType属性和pageEncoding属性
contentType属性指定JSP页面的MIME和编码格式
<%@ page contentType="text/html;charset=UTF-8"%>
生成的java代码如下:
response.setContentType("text/html;charset=UTF-8");
pageEncoding属性用来指定JSP文件的编码格式(JSP文件保存时选择的编码格式)
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
1)pageEncoding指定的编码一定要和JSP文件保存时选择的编码一致,否则会发生乱码。
比如JSP文件中有hard coding的中文字符,此时如果文件保存时的编码和pageEncoding指定的编码不一致,中文信息在画面上显示的时候就会乱码。
2)如果没有指定contentType,只指定了pageEncoding属性,那么charset的值和pageEncoding一致
比如:
<%@ page pageEncoding="UTF-8"%>和
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
是等价的。
3)都不指定的话,默认的charset和pageEncoding都是ISO-8859-1
生成的java代码如下:
response.setContentType("text/html");
2.10 isELIgnored属性
用来标示是否支持EL表达式
<%@ page isELIgnored="true"%> 不支持EL表达式,EL表达式会被当做普通的html文本
<%@ page isELIgnored="false"%> 支持EL表达式
3. taglib指令
声明JSP文件使用了标签库(JSP标准标签库,第三方标签库,自定义标签库)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 声明使用JSTL的核心标签库
使用JSTL核心标签库中的c:out标签在页面上输出hello world
<c:out value="hello world" />
使用JSTL之前,需要下载下面两个jar文件,然后放到web应用的WEB-INF/lib目录。
jstl.jar
standard.jar
分享到:
相关推荐
JSP指令,page指令,errorPage和isErrorPage等属性的介绍。
page指令,include指令与<jsp:include>、<jsp:forward>、<jsp:fallback>、<jsp:plugin>动作
2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX
JSP指令标记与JSP动作标记(3.20)操作文档
实验目的:掌握3种脚本、page和include指令、<jsp:include>和<jsp:forward>动作。 实验内容: 1. 编写一个页面片段top.jspf,作用是显示网站名称和日期(服务器时间)。显示内容如下: 作业3网站 今天是:2014-02-...
本资源描述了jsp脚本元素、jsp指令和jsp动作
Tomcat的配置 Tomcat的典型目录结构 JSP 脚本的四个元素, JSP 表达式、JSP Scriptlet 、 JSP 指令和JSP注释 JSP脚本中使用其他包的类
jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理
02-JSP脚本元素指令及动作.ppt
JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。 语法格式如下: 指令可以有很多个属性,它们以键值对的形式存在,并用逗号隔开。 JSP中的三种指令标签: 指令 描述 ...
jsp语言的基本脚本语言,在WEB开发的领域中能够起到重要的作用
2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX
介绍JSP页面的结构 JSP的编译指令、操作指令和代码 重点介绍JSP常用的六大基本对象: out对象、response对象、request对象、application对象、session对象和cookie对象。
WEB开发 之 JSP指令.docx
21天学通Java+Web开发 第3章 JSP指令元素21天学通Java+Web开发 第3章 JSP指令元素21天学通Java+Web开发 第3章 JSP指令元素
JavaWeb开发技术-JSP指令.pptx
实验2_Jsp语法 -页面基本结构、指令标记和动作标记
今天复习了JSP指令元素部分,整理了下,跟大家一起分享: 一、page指令:设定JSP页面的全局属性,该配置作用于整个JSP页面,设置包括静态包含的文件。 <%@ page 属性1=”属性值1“ 属性2=”属性值2“ %> 1、...
希望能帮到大家
JSP基础语法-include指令