JSP的相关概述以及指令标签的使用

JSP的定义

JSP,全称Java Server Pages

是基于Java语言的动态网页技术,其文件扩展名为.jsp。

JSP页面的组成

可以由指令标识、HTML代码、Java代码、注释语句等项目组成。

  • 下面具体讲一下什么是指令标识

由一个尖括号包括的一系列页面属性配置的代码部分,例如我们经常定义的<%@ page language = "java" contentType ="text/html;charset = "UTF-8" pageEncoding="UTF-8"%>

  • Java代码

可以在JSP页面中写入Java语法构成的表达式语句。代码一般由<%%>括起来。

例如:<% Date date = new Date();//new出来一个时间对象........省略......%>

JSP的运行原理

当一个JSP文件部署到Web应用服务器后,JSP文件的内容并不能直接被浏览器预览,而需要以下几个步骤

1. 首先,用户通过浏览器向Web服务器发起一个请求

2. Web服务器开始解析相应的Jsp文件,逐步解析为servlet文件(其实就是Java文件啦)、class文件,最终解析为一个Servlet实例,来处理浏览器发起的请求。

3. 然后Web服务器将以HTML格式来返回至浏览器端。

JSP的指令标识

指令标识用来设置JSP页面的一些信息,这些指令标识需要被服务器解析执行,但是不会出现在浏览器页面上。

JSP指令主要包含:page、include、taglib三个标识。

指令标识的语法格式为:<%@ 标识名称 属性1=“属性值” 属性2=“属性值”.....%>

其中标识名称为page、include、taglib任意一个、属性可以有多个。

page指令标识

这个指令会出现在每个JSP页面中。

定义了与整个JSP页面相关的属性:JSP页面编码格式、内容类型、引用的类库。

page指令下有13个属性:language、contentType、pageEncoding、import、autoFlush、buffer、errorPage、extends、info、isELIgnored、isErrorPage、isThreadSafe、session。

其中最常使用的有以下这些属性

  • language:指定该JSP页面中使用的语言类型,例如<%@ page language="java"%>
  • contentType:指定该JSP页面的MIME类型和字符编码,浏览器根据这个属性值来显示网页内容。

                       注意这个设置是为服务器返回结果给浏览器使用的,就是说返回的HTML页面中英文是由这个属性来决定的。

                       例如:<%@ page language="java" contentType="text/html; charset=UTF-8"%>

                       扩展一下,如果不指定编码,那么页面中如果有中文的话,就会显示为乱码。

  • pageEncoding:指定JSP页面的编码格式。在一个JSP中,该页面的所有代码都要应用该属性指定的字符集。

                       如果该属性设置为ISO-8859-1,则JSP页面代码部分就不支持中文了。一般设置为UTF-8值。

  • import:设置导入JSP页面的类包。导入包后,就可以通过表达式来嵌入java代码了。

              例如:<%@ page import="java.util.Date"%>

  • buffer:用来设置out对象使用的缓冲区大小,单位为KB,默认值为8KB,一般设置为8KB、16KB、32KB、64KB等。

             例如:<%@ page buffer="16KB"%>

  • autoFlush:当缓冲区满时,自动缓冲区中的内容会输出到客户端。该值默认为true。

                    如果设置为false,在缓冲区满的状态下,会出现JSP Buffer overflow的异常。

  • isErrorPage:该属性用于将当前JSP页面设置成错误处理页面。

                     错误处理页面用于处理另一个JSP页面的错误,也就是异常处理。

                    只有在错误处理页面中,将isErrorPage属性设置为true时,才可以调用exception对象输出错误信息。

                    例如:

                     <%@ page isErrorPage="true"%>这句话是写在报错页面error.jsp中的。

                     <%=exception.getMessage()%>这句话是写在error.jsp中用来显示错误信息的。

                     <%@  page errorPage="error.jsp"%> 这句话是在一个页面中引用error.jsp的。

  • session属性

       用来指定当前JSP页面是否支持session。默认为true,表示支持session;反之不支持session

  • isELIgnored属性

       用来指定是否禁用EL表达式。如果为true,表示忽略EL表达式;如果为false,表示可以支持EL表达式

  • isThreadSafe属性

        用来指定JSP页面是否是线程安全的。如果为true,表示JSP页面在同一时间可以被多个线程访问。如果为false,表示JSP页面同一时间不可以被多个线程访问。

include指令

是JSP页面包含指令,可以应用在页面的嵌套中。

当存在页面嵌套时,其解析原理如下:

例如index.jsp中包含嵌套了一个top.jsp文件,在程序编译过程中,会先将两个页面组合成一个页面,然后进行后续的编译处理。

这是一种合二为一的执行过程。所以在这两个页面中,不能存在相同名称的变量,不然会发生错误。

语法格式:<%@ include file = "path"%> 其中path为要包含文件的路径(不限于绝对路径,也可以是相对路径)

taglib指令

用于声明一个标签的引用,进而在JSP页面中调用目标类型的标签。

语法格式:<%@ taglib prefix="tagPrefix" uri="tagURI"%>

其中,prefix用来指定标签库的前缀(在具体引用时的值),uri用来指定标签库的位置。

常用的标签库有JSTL、Struts、Spring等

例如,引入JSTL标签库:

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%>

好了,本小节讲解到这里啦^_^

发布了141 篇原创文章 · 获赞 38 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/baidu_35901646/article/details/104346192
今日推荐