`
阅读更多

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指令简单介绍

    本篇文章将深入探讨"jsp指令",特别是"page指令",以及与之相关的`errorPage`和`isErrorPage`属性。 首先,我们来理解什么是JSP指令。JSP指令是JSP页面中的特殊元素,以`开头,`%&gt;`结尾,它们不像JSP动作元素那样在...

    JSP指令和动作熟悉

    本篇将详细介绍JSP中的`page`指令,以及`include`指令与相关动作`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:fallback&gt;`, `&lt;jsp:plugin&gt;`。 首先,`page`指令是JSP中最高级别的指令,它用于定义整个JSP页面的属性。`...

    实验2 JSP指令标记与JSP动作标记(3.20)

    ### 实验2 JSP指令标记与JSP动作标记(3.20)——知识点解析 #### 实验背景及目标 本次实验旨在加深学生对JSP技术的理解与运用能力,特别是针对JSP指令标记与JSP动作标记的学习。通过具体的操作实践,使学生能够熟练...

    2.3 JSP指令 JSP+AJAX

    2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX

    JSP指令与动作熟悉

    实验目的:掌握3种脚本、page和include指令、&lt;jsp:include&gt;和&lt;jsp:forward&gt;动作。 实验内容: 1. 编写一个页面片段top.jspf,作用是显示网站名称和日期(服务器时间)。显示内容如下: 作业3网站 今天是:2014-02-...

    JSP内置对象之域对象和JSP指令

    ### JSP内置对象之域对象和JSP指令详解 #### JSP内置对象之域对象 在JSP技术中,有几种内置对象被称为“域对象”,它们用于存储数据,并且具有不同的作用范围。这些域对象包括`pageContext`、`request`、`session`...

    JSP指令与综合运用

    Tomcat的配置 Tomcat的典型目录结构 JSP 脚本的四个元素, JSP 表达式、JSP Scriptlet 、 JSP 指令和JSP注释 JSP脚本中使用其他包的类

    JSP指令与操作.ppt

    【JSP指令与操作】是JavaServer Pages(JSP)技术的重要组成部分,它们允许开发者对JSP页面的行为和结构进行预定义。本章主要讲解了三种类型的JSP指令:page、include和taglib,以及JavaBeans在JSP中的应用。 **1. ...

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    - **指令**:用于配置页面或者影响JSP编译过程,如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`等。 - **动作元素**:用于调用JSP组件,如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`等。 **3. 注释** ...

    实验2_Jsp语法 -页面基本结构、指令标记和动作标记

    ### 实验2_Jsp语法 -页面基本结构、指令标记和动作标记 #### 实验概述 本次实验主要聚焦于JSP(JavaServer Pages)的基本语法学习,涵盖了页面的基本结构、指令标记以及动作标记的运用。实验旨在使参与者能够熟练...

    JSP指令和脚本元素.ppt

    JSP 指令和脚本元素 JSP(JavaServer Pages)是一种将 Java 与 HTML 相结合的规范,由 Sun Microsystems 公司开发。JSP 是使用 Java 开发基于 Web 的应用程序不可或缺的部分,可以结合其他 Java 组件一起使用。 ...

    02-JSP脚本元素指令及动作.ppt

    02-JSP脚本元素指令及动作.ppt

    Java Web程序设计入门课件-JSP指令.pptx

    JSP指令是JSP页面的元数据,用于配置页面的全局特性。Page指令是JSP中最为常见的指令之一,它允许开发者定义JSP页面的基本属性。例如,你可以通过`&lt;%@ page ... %&gt;`来设置页面的字符编码、导入需要的Java包等。其...

    JSP 指令

    JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。 语法格式如下: 指令可以有很多个属性,它们以键值对的形式存在,并用逗号隔开。 JSP中的三种指令标签: 指令 描述 ...

    JSP 的脚本,指令,动作

    总的来说,理解并熟练运用JSP的脚本、指令和动作元素是成为一名合格的Java Web开发者的基础,这有助于创建功能丰富的、动态的、交互性强的Web应用程序。通过不断的实践和学习,开发者可以更好地驾驭这些元素,提升...

    JSP脚本和指令的使用.ppt

    jsp语言的基本脚本语言,在WEB开发的领域中能够起到重要的作用

    JavaWeb程序设计入门课件JSP指令共5页.pdf.z

    JSP指令主要分为三类:页面指令、包含指令和标签库指令。这些指令在JSP文件中以`&lt;%@&gt;`开头,它们不是HTML标签,而是用于配置JSP页面和引入外部资源的元数据。 1. **页面指令**(Page Directive):页面指令用于设置...

    WEB开发 之 JSP指令.docx

    理解并正确使用JSP指令是成为一名熟练的JSP开发者的关键。通过这些指令,开发者可以更好地控制页面行为,优化性能,以及实现更复杂的逻辑。在实际开发中,合理地利用这些指令可以使代码更清晰,维护性更强。

    JavaWeb开发技术-JSP指令.pptx

    - **内容类型**: 被引入的文件可以包含静态HTML、JSP脚本元素和JSP指令,等同于一个普通的JSP页面。 - **处理方式**: JSP引擎将被引入的文件内容转化为相应的Java源代码,并插入到包含它的JSP页面的源代码中,位置与...

Global site tag (gtag.js) - Google Analytics