jsp

JSP:Java Server Pages Java服务器端页面。

JSP 就是 HTML + Java代码 + JSP自身东西。

运行原理

JSP文件翻译成Java文件,将这个Java文件编译生成class文件,运行class文件

脚本元素

JSP的脚本元素概述

什么是JSP的脚本元素

JSP的脚本元素就是在JSP中嵌入Java代码。

JSP的脚本元素的分类

  • <%!  %> :JSP声明 翻译成 Servlet成员部分的内容。声明变量,方法,内部类。
  • <%= %> :翻译out.print(),在service方法内部。用于生成HTML页面源码。
  • <%   %> :嵌入Java代码 翻译成service方法内部的代码块。声明变量,内部类。

声明标签

语法:

  <%! 变量或方法声明 %>

  写在这个脚本中的代码,翻译成Servlet内部的成员变量或成员方法。

用法:

 

表达式标签

语法:

  <%= 表达式 %>

  写在这个脚本中的代码,翻译成方法内部的out.print();当中的内容。

用法:

 

程序代码标签

语法:

  <% 程序代码 %>

  写在这个脚本中的代码,翻译成方法内部的局部变量或方法内部代码片段。

用法:

动态网页开发模式的发展

修改JSP的字符集编码

JSP的注释

HTML的注释

  • 写法:<!--HTML的注释 -->
  • 存在时机:存在JSP的源码中,翻译成Servlet后这个注释也存在,在生成HTML响应到页面的时候这个注释也会存在。

Java代码的注释

  • 写法:<% // 单行注释               

        /* 多行注释 */

        /**文档注释*/

        %>

  • 存在时机:存在JSP的源码中,翻译成Servlet后Java代码的注释也会存在,但是生成HTML响应到页面后,这种注释就消失了。

JSP注释

  • 写法:<%-- JSP的注释 --%>
  • 存在时机:存在JSP的源码中,翻译Servlet后注释就没有了。

注意:Java代码注释的话不要使用HTML的注释!!!

JSP的指令元素

JSP指令元素作用

  • 用于指示JSP执行的某些步骤
  • 用于指示JSP变现特定行为

JSP指令元素的语法

<%@ 指令名称 属性名称=属性的值 属性名称=属性的值 %>

JSP指令元素的分类

  • page指令:指示JSP的页面设置属性和行为
  • include指令:指示JSP包含哪些其他页面
  • taglib指令:指示JSP页面包含哪些标签库

JSP的指令-page指令

Page指令简介

  • 写法:<%@ page 属性名=属性值 %>
  • Page指令用来定义JSP文件的全局属性。
  • 这些属性可以单独使用,也可以几个或多个同时使用。
  • 在JSP页面中,只有import属性可以出现多次,其他属性都只能出现一次。

Page指令属性

  • language属性:       声明使用脚本的语言。只能是java。
  • extends属性:         标明JSP编译成Servlet的时候继承的类。默认值:HttpJspBase。
  • session属性:           标明JSP中是否可以直接使用session对象。默认值是true。
  • buffer属性:            标明JSP对客户端输出缓冲区大小。默认值8kb。
  • autoFlush属性:      如果缓冲区大小溢出,是否自动刷出。默认true。
  • import属性:         用于导入Java包或类。
  • contentType属性:标明JSP被浏览器解析和打开的时候采用的默认的字符集。
  • pageEncoding属性:JSP文件及JSP翻译后的Servlet保存到硬盘上采用字符集。
  • isErrorPage属性:  处理JSP页面异常。
  • errorPage属性:     处理JSP页面异常。
  • isELIgnored属性:  通知JSP是否忽略EL表达式。

JSP的指令-include和taglib指令

Include指令简介

  • 写法:<%@ include 属性名=属性值%>
  • 作用:在JSP页面中静态包含一个文件,同时由该JSP解析包含的文件内容。

Include指令属性

  • file属性:指示JSP页面包含页面路径。

Include指令原理(静态包含原理)

 

注意地方:

  • 应该将被包含的页面的结构去掉。
  • 在被包含的页面中定义变量,在包含的页面中还可以使用。

Taglib指令简介

  • 写法:<%@ taglib 属性名=属性值%>
  • 作用:用于在JSP页面中引入标签库。

Taglib指令属性

  • uri属性:引入的标签库的路径
  • prefix属性:引入标签库的别名

JSP的内置对象

什么是JSP的内置对象

  • JSP的内置对象:指的是可以直接在JSP页面中使用的对象。

JSP当中有9大内置对象:

  • request           :从客户端向服务器发送的请求对象
  • response         :从服务器端向客户端作出响应对象
  • session            :服务器为客户端创建会话对象
  • application     :代表应用。获得的ServletContext对象。
  • out                  :向输出流写入内容的对象。
  • page               :当前的JSP翻译成Servlet后的对象的引用。
  • pageContext  :本JSP的页面的上下文对象。
  • config             :本JSP的ServletConfig对象。
  • exception        :表示JSP页面运行时产生的异常对象。

JSP的内置对象具体类型

  • request               HttpServletRequest
  • response             HttpServletResponse
  • session                HttpSession
  • application          ServletContext
  • config                  ServletConfig
  • page                    Object
  • pageContext        PageContext
  • out                       JspWriter
  • exception            Throwable

 

pageContext对象

pageContext对象简介

pageContext对象直接翻译为“页面上下文”对象,代表的是当前页面运行的一些属性。

它是javax.servlet.jsp.PageContext类的实例对象。

pageContext对象作用

提供了page范围的数据存取的方法:

向page范围中存入数据:

从page范围获取数据

从page范围移除数据

查找属性的方法:

通过这个对象获得其他的8个内置对象:

获得其他8个内置对象的方法

JSP的四个作用范围

  • PageScope                   :页面范围。

    页面范围指的是在当前的页面内有效,出了这个页面,用pageContext保存的数据就无效了。

  • RequestScope             :请求范围。

    从客户端向服务器发送一次请求,服务器对这次请求作出了响应之后,用request保存的数据就无效了。

  • SessionScope              :会话范围。

    每个浏览器向服务器发送请求(多次请求)。将该会话结束。

  • ApplicationScope        ·:应用范围。

    在整个应用中任意的地方都可以获取。

PageContextt的findAttribute方法:

查找属性方法:先根据小范围的名称进行查找,如果找到了就返回,如果没有找到就会去比其大一个域的范围进行查找。

JSP常用动作标签

JSP的动作标签用于在JSP页面中提供业务逻辑功能,避免在JSP页面中直接编写Java代码,造成jsp页面难以维护。

常用的动作标签

  • <jsp:forward/> :请求转发。
  • <jsp:include/>:包含(动态包含)。
  • <jsp:param/>:传递参数。

静态包含和动态包含区别-动态包含的原理

posted @ 2019-09-18 17:23  搬砖的小伙儿  阅读(151)  评论(0)    收藏  举报
Fork me on GitHub