1. jsp的脚本元素
<%! %> :JSP声明 翻译成 Servlet成员部分的内容。声明变量,方法,内部类。
<%= %> :翻译out.print(),在service方法内部。用于生成HTML页面源码。
<% %> :嵌入Java代码 翻译成service方法内部的代码块(局部)。声明变量,内部类。
2. jsp的指令元素
语法: <%@ 指令名称 属性名称=属性的值 属性名称=属性的值 %>
page指令:指示JSP的页面设置属性和行为
include指令:指示JSP包含哪些其他页面(静态包含,是相对于动作标签的动态包含)
taglib指令:指示JSP页面包含哪些标签库
3. jsp的9大内置对象(内置对象后的括号为对象的具体类型,黄底也为四大域对象)
request :从客户端向服务器发送的请求对象 。(HttpServletRequest)
response :从服务器端向客户端作出响应对象 。(HttpServletResponse)
session :服务器为客户端创建会话对象 。(HttpSession)
application :代表应用。获得的ServletContext对象。(ServletContext)
out :向输出流写入内容的对象 。(ServletConfig)
page :当前的JSP翻译成Servlet后的对象的引用。 (Object)
pageContext :本JSP的页面的上下文对象。 (PageContext)
config :本JSP的ServletConfig对象。 (JspWriter)
exception :表示JSP页面运行时产生的异常对象。 (Throwable)
注: PageContext对象可获取其他八大对象.
4. jsp的4个作用范围(域范围常量)
l PageScope :页面范围。
页面范围指的是在当前的页面内有效,出了这个页面,用pageContext保存的数据就无效了。
l RequestScope :请求范围。
从客户端向服务器发送一次请求,服务器对这次请求作出了响应之后,用request保存的数据就无效了。
l SessionScope :会话范围。
每个浏览器向服务器发送请求(多次请求)。将该会话结束。
l ApplicationScope :应用范围。
在整个应用中任意的地方都可以获取。
上图的2种存储方式都可以将数据存到对应应用范围.
5. jsp的动作标签
JSP的动作标签用于在JSP页面中提供业务逻辑功能,避免在JSP页面中直接编写Java代码,造成jsp页面难以维护.
l <jsp:forward/> :请求转发。
l <jsp:include/>:包含(动态包含)。
l <jsp:param/>:传递参数。
静态包含和动态包含的区别:
静态包含是将被包含页面的代码整个复制过去,然后一起翻译;动态包含是将每个被包含的jsp独立运行之后的结果传过去.