zoukankan      html  css  js  c++  java
  • JSP技术(三)

    JSP指令

    指令是JSP语法元素的第一种类型。它们指示JSP转换器如何翻译JSP页面为Servlet。JSP定义了多个指令,但只有page和include最重要。而taglib、tag、attribute以及variable暂时不讨论

    一.page指令

    可以使用Page指令来控制JSP转换器转换当前JSP页面的某些方面。例如,可以告诉JSP用于转换隐式对象out的缓冲器的大小、内容类型,以及需要导入的Java类型,等。

    page指令的语法如下:

    <%@ page attribute1="value1" attribute2="value2" ...%>

    attribute1、attribute2等是page指令的属性。如下是page指令属性的列表:

    1.import:定义一个或多个本页面中将被导入和使用的Java类型。例如:import="java.util.List"将导入List接口。可以使用通配符“*”来引入整个包,类似import=“java.util.*”。可以通过在两个类型间加入“,”分隔符来导入多个类型。如:import=“java.util.ArrayList、java.io.PrintWriter”。此外,JSP默认导入如下包:java.lang、javax.servlet、javax.servlet.http、javax.servlet.jsp。

    2.session:值为True,本页面加入会话管理;值为false则相反。默认值为True,访问该页面时,若当前不存在javax.servlet.http.HttpSession实例,则会创建一个。

    3.buffer:以KB为单位,定义隐式对象out的缓冲大小。必须以KB后缀结尾。默认大小为8KB或更大(取决于JSP容器)。该值可以为none,这意味着没有缓冲,所有的、数据将直接写入PrintWriter。

    4.autoFlush:默认为True。若值为True,则当输出缓冲满时会自动写入输出流。而值为False,则仅当调用隐式对象flush方法时,才会写入输出流。因此,若缓冲区溢出,则会抛出异常。

    5.isThreadSafe:定义该页面的线程安全级别。不推荐使用JSP参数,因为使用该参数后,会生成一些Servlet容器已经过期的代码。

    6.info:返回调用容器生成的Servlet类的getServletInfo方法的结果。

    7.errorPage:定义出错时用来处理错误的页面。

    8.isErrorPage:标识本页是一个错误处理页面。

    9.contentType:定义本页面隐式对象response的内容类型,默认是text/html。

    10.pageEncoding:定义本页面的字符编码,默认为ISO-8859-1。(需要改为UTF-8)

    11.isELIgnored:配置知否忽略EL表达式。

    12.language:定义本页面的脚本类型,默认为JAVA。

    13.extends:定义JSP实现类要继承的父类。这个属性的使用场景罕见。

    14.deferredSyntaxAllowedAsLiteral:定义是否解析字符串中出现的“#{”符号,默认为false。

    15.trimDirectiveWhitespaces:定义是否不输出多余的空格/空行,默认为False。

    例:

    <%@page import="java.util.Date,java,util.ArrayList" %>
    <%@page import="java.text.DateFormat" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%>
    

    二.include指令

    可以使用include指令将其他文件中的内容包含到当前JSP页面中。一个jsp页面可以有多个include指令。若存在一个内容会在多个不同的页面中使用或一个页面不同位置使用的场景,则该内容模块化到一个include文件非常有用。

    include指令的语法如下:

    <%@ include file="url"%>

    url为包含文件的相对路径,若URL以一个斜杠(/)开始,则该URL为文件在服务器上的绝对路径,否则为当前JSP页面的相对路径。

    例:

    a.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>My JSP 'include1.jsp' starting page</title>
      </head>
      
      <body>
        aaaaaaa
        <%--静态包含 --%>
        <%-- @ include file="/b.jsp" --%>
        <%--动态包含 --%>
        <jsp:include page="/b.jsp"></jsp:include>
      </body>
    </html>
    

    b.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  
        <title>My JSP 'b.jsp' starting page</title>
      </head>
      
      <body>
        bbbbbbbbbbb
      </body>
    </html>
    

      注意:a.jsp和b.jsp必须位于相同的目录下。

  • 相关阅读:
    linux驱动开发学习一:创建一个字符设备
    如何高效的对有序数组去重
    找到缺失的第一个正整数
    .NET不可变集合已经正式发布
    中国人唯一不认可的成功——就是家庭的和睦,人生的平淡【转】
    自己动手搭建 MongoDB 环境,并建立一个 .NET HelloWorld 程序测试
    ASP.NET MVC 中如何用自定义 Handler 来处理来自 AJAX 请求的 HttpRequestValidationException 错误
    自己动手搭建 Redis 环境,并建立一个 .NET HelloWorld 程序测试
    ServiceStack 介绍
    一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL
  • 原文地址:https://www.cnblogs.com/longlyseul/p/9974190.html
Copyright © 2011-2022 走看看