JSP是Java Servlet Page的缩写。
注释: <!-- comment -->(Html注释)
隐藏注释(jsp注释,不会发送给客户端,仅开发人员可见):<%-- comment --%>
声明:<%! %> 成员变量
表达式:<%= %>
脚本段:<% %> 局部变量(推荐)
包含在<jsp:command></jsp:command>内部的元素。如
<jsp:forward>指令
<jsp:forward page="url |<%= expression%>">
<jsp:param name=""value="">···
</jsp:forward>
<jsp:forward>指令后面的代码都没有执行。
<jsp:include>指令
<jsp:include page="url |<%= expression%>" flush="true">
<jsp:param name=""value="">···
</jsp:include>
JSP最终都会转换为Servlet去执行。
JSP的执行过程
JSP详细执行流程
Jsp原始代码包含jsp元素和模板数据(Template data)。Template data指的是Jsp引擎不处理的部分,即<%···%>以外的部分,如Html;Jsp元素指由Jsp引擎直接处理的部分,这部分必须符合Java语法,否则出错。
Jsp语法有三种不同类型:编译器指令、脚本语法、动作语法。
脚本语法注释: <!-- comment -->(Html注释)
隐藏注释(jsp注释,不会发送给客户端,仅开发人员可见):<%-- comment --%>
声明:<%! %> 成员变量
表达式:<%= %>
脚本段:<% %> 局部变量(推荐)
编译器指令
包括 包含指令、页指令和taglib指令,它们包含在<%@ %>。两个主要的指令是page和include。
include指令 <%@ include file="included.jsp" %>
page指令 <%@ page language="java" extends="package.class" import="" session="true|false" isThreadSafe="true|false" pageEncoding="utf-8" errorPage="relativeURL" isErrorPage="true|false" contentType="mimeType[;charset=characterSet]" |"text/html; charset=ISO-8859-1"] %> page指令可以放在页面的任何位置,推荐放在页头。
taglib指令 <%@ taglib uri="uriToTaglib" prefix="tagPrefix" %>
包含在<jsp:command></jsp:command>内部的元素。如
<jsp:forward>指令
<jsp:forward page="url |<%= expression%>">
<jsp:param name=""value="">···
</jsp:forward>
<jsp:forward>指令后面的代码都没有执行。
<jsp:include>指令
<jsp:include page="url |<%= expression%>" flush="true">
<jsp:param name=""value="">···
</jsp:include>
JSP九种内置对象
对象名 | 类型 | 作用域 |
request,请求对象 | javax.servlet.ServletRequest的子类 | Request |
response,响应对象 | javax.servlet.ServletResponse的子类 | Page |
pageContent,页面上下文对象 | javax.servlet.PageContext | Page |
session,会话对象 | javax.servlet.http.HttpSession | Session |
application,应用程序对象 | javax.servlet.ServletContext | Application |
out,输出对象 | javax.servlet.jsp.JspWriter | Page |
config,配置对象 | javax.servlet.ServletConfig | Page |
page,页面对象 | javax.lang.Object | Page |
exception,异常对象 | javax.lang.Throwable | Page |