1. 概念:
Java Server Pages: java服务器端页面
JSP全称是Java Server Pages,它和servlet技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
JSP的源代码可以分为:模板代码+元素(元素是jsp中的java部分:jsp的指令和标签等)
2. 原理
JSP本质上就是一个Servlet
3. JSP的脚本:JSP定义Java代码的方式
1. <% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
2. <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
3. <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
4. JSP的内置对象:
在jsp页面中不需要获取和创建,可以直接使用的对象
* request
* response
* out:字符输出流对象。可以将数据输出到页面上。和response.getWriter()类似
* response.getWriter()和out.write()的区别:
* 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
* response.getWriter()数据输出永远在out.write()之前
5.JSP指令
1. Include指令
静态包含: 先包含在执行
<%@ include file="/head.jsp" %> 代码 <%@ include file="/foot.jsp" %>
静态包含只会形成一个servlet文件
动态包含:先执行再包含(可以传递参数和被包含的页面可以生成servlet)
<jsp:include page="/head.jsp" >
<jsp:param value="zhi" name="name"/>
</jsp:include>
注意:动态包含与静态包含的区别(在实际开发中能用静态,就不要用动态)
2.Taglib指令
作用:引入外部的标签
语法:<%@taglib uri = “标签名称空间” prefix=“前缀”%>
<%@ taglib uri=“http://java.sun.xom/jsp/jstl/core” prefix=“c”%>
3.Page指令
*import:导入JSP中的Java脚本使用到的类或包.(如同Java中的import语句);一个import属性可以导入多个包,用逗号分隔。
*buffer:指示JSP用的输出流的缓存大小,默认是8kb
*errorPage:指示当前页面出错后转向(转发)的页面。
目标页面如果以"/"(当前应用)就是绝对路径。