(一)JSP
一.概述
- Java Server Page
- jsp:
- - 从用户角度:就是一个网页
- - 从程序员角度:其实就是一个java类,它继承了servlet,所以可以说jsp就是一个Servlet
二. 三大指令
<%@ 指令名字 %>
- page指令
- language
- - 表明jsp页面中可以写java代码 - contentType
- - 文件类型,告诉浏览器自己是什么内容类型,以及使用什么编码 - pageEncoding
- - jsp内容编码
- language
- include指令
<%@ include file="index.jsp" %>- 包含另外一个jsp的内容进来
- 把另外一个页面的所有内容拿过来一起输出,所有的标签元素都包含进来
- taglib指令
<%@ taglib prefix="" uri="" %>
uri:标签库路径
prefix:标签库的别名
三.动作标签(常用)
<jsp:include page=""></jsp:include>
<jsp:forward page=""></jsp:forward>
<jsp:param value="" name=""/>
- jsp:include
包含指定的页面,这里是动态包含.也就是不把包含的页面所有元素标签全部拿过来输出,而是把它的运行结果拿过来. - jsp:forward
前往一个页面, 实际是通过请求转发 - jsp:param
在包含某个页面的时候,或者在跳转某个页面的时候,加入这个参数
<jsp:forward page="">
<jsp:param value="" name=""/>
</jsp:forward>
四.内置对象(九个)
内置对象:就是我们可以直接在jsp页面中使用这些对象,不用创建
pageContext request session application //四个作用域对象
- pageContext [pageContext] :作用域仅限于当前的页面 ,还可以获取其他八个内置对象
- request [HttpServletRequest]:作用域仅限于一次请求,只要服务器对该请求做出了响应,这个域中存的值就没有了
- session [HttpSession]:作用域限于一次会话(多次请求与响应)当中
- application [ServletContext]:整个工程都可以访问,服务器关闭后就不能访问了
out exception page config response
- out [JspWriter]
- response [HttpServletResponse]
- exception [Throwable]
- page [Object] ---就是这个jsp翻译成的java类的实例对象. this
- config [ServletConfig]
(二)EL表达式
为了简化jsp里面的java代码
一.写法格式
- ${ 表达式 }
<% pageContext.setAttribute("name" , "page"); %>
普通手段取值 <%= pageContext.getAttribute("name")%>
EL表达式取作用域中的值 ${ pageScope.name } - 如果域中所存的值是数组
<%
String[ ] a = {"aa","bb","cc"};
pageContext.setAttribute("array" , a);
%>
使用EL表达式取出作用域中数组的值
${array[0]},${array[1]},${array[2]} - 取值方式:
如果这份值是有下标的,那么直接使用[ ]
如果没有下标,直接使用 . 的方式去取 - 一般使用EL表达式,用的比较多的,就是从一个对象中取出它的属性值,比如取出某一个学生的姓名
二.EL表达式的内置对象(11个)
${ 对象名 , 成员 }
pageContext
pageScope requestScope sessionScope applicationScope //作用域相关对象
header headerValues //头信息相关对象
param paramValues //参数相关对象
cookie
initParam //全局初始化参数
(三)JSTL
一.概述
- JSTL(JSP Standard Tag Library, JSP标准标签库)
- 简化JSP的代码编写,替换<%%>写法, 一般与EL表达式配合
二.使用方法
- 导入jar文件到工程的WebContent/Web-Inf/lib jstl.jar standard.jar
- 在jsp页面上,使用taglib指令,来引入标签库
- 注意:如果想支持EL表达式,那么引入的标签库必须选择1.1的版本