Java Web学习笔记(七):JSP

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码

JSP原理

Web服务器使用JSP来创建网页的步骤如下:

  1. 就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器。
  2. Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。
  3. JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
  4. JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
  5. Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
  6. Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
  7. 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。

JSP语法

注释

JSP中支持HTML注释和JSP注释。

  • HTML注释的格式为````,可以在客户端显示。
  • JSP注释的格式为<%--这是个JSP注释--%>,不可以在客户端显示。

JSP脚本元素

jsp脚本元素分为三类:JSP声明,JSP表达式,JSP Scriptlets。

  • JSP声明:格式为<%! java程序%>,用来定义变量和方法,将来方法和变量会直接添加到servlet之中,相当于java的方法和变量。其中变量为全局变量。
  • JSP表达式: 格式为<%=java表达式%>,用来将数据或者数据操作后的结果转换为字符串,插入到Servlet的输出流之中。
  • JSP Scriptlets,格式为<%java程序%>,一般使用定义变量和编写语句,可以将java代码插入到jspService之中。

看一个简单的例子:

<%@ page language = "java" pageEncoding = "utf-8" %>

      
            
                   JSP Scriptlets
            
      
      
            
            <%-- 实现页面访问计数 --%>
            <%! 
                int visit1 = 1; //声明变量visit1,初始值为1
                int visit2 = 1; //声明变量visit2,初始值为1
            %>
            你是本页面第<%= visit1++ %>个访客(JSP表达式实现)
你是本页面第<% out.println(visit2++); %>个访客(JSP Scriptlets实现)

需要注意,JSP声明和JSP Scriptlets中可以有多个语句,每个语句后面使用 分号“;” 结束。而JSP表达式中只能有一个表达式。

JSP指令

JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。包括page指令,include指令,taglib指令。

Page指令

Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。

Page指令的语法格式:

<%@ page attribute="value" %>

Page指令常用属性如下:

属性 描述
buffer 指定out对象使用缓冲区的大小
autoFlush 控制out对象的缓存区
contentType 指定当前JSP页面的MIME类型和字符编码
errorPage 指定当JSP页面发生异常时需要转向的错误处理页面
isErrorPage 指定当前页面是否可以作为另一个JSP页面的错误处理页面
extends 指定servlet从哪一个类继承
import 导入要使用的Java类
info 定义JSP页面的描述信息
isThreadSafe 指定对JSP页面的访问是否为线程安全
language 定义JSP页面所用的脚本语言,默认是Java
session 指定JSP页面是否使用session
isELIgnored 指定是否执行EL表达式
isScriptingEnabled 确定脚本元素能否被使用

Include指令

JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。

Include指令的语法格式如下:

<%@ include file="relative url" %>

Taglib指令

JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。

Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。

Taglib指令的语法:

<%@ taglib uri="uri" prefix="prefixOfTag" %>

你可能感兴趣的:(Java Web学习笔记(七):JSP)