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/>:传递参数。


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


浙公网安备 33010602011771号