【JSP的脚本】
Ø <%! %> :翻译成Servlet中的成员内容. 定义变量,方法,类. -- 不建议.
Ø <% %> :翻译成Servlet中service方法内部的内容. 定义类,变量
Ø <%= %> :翻译成Servlet中service方法中out.print();
- 设置全局的错误友好页面:
* 在web.xml中设置:
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
Ø pageContext内置对象 :
* 获得其他的8个内置对象 :编写通用性代码或者框架的时候.
JSP的四个域范围:
* PageScope :当前页面中有效. pageContext PageContext
* RequestScope :一次请求范围. request HttpServletRequest
* SessionScope :一次会话范围. session HttpSession
* ApplicationScope :应用范围 application ServletContext
EL 表达式
Ø 使用EL表达式:
* 语法:${ EL表达式 }
【EL操作WEB开发的常用对象11个】
<h1>EL功能三:操作WEB开发常用的对象</h1>
<h3>接收请求的参数</h3>
<%= request.getParameter("id") %>
<%= request.getParameter("name") %>
<%= Arrays.toString(request.getParameterValues("hobby")) %>
${ param.id }
${ param.name }
${ paramValues.hobby[0] }
${ paramValues.hobby[1] }
<h3>获取请求头</h3>
<%= request.getHeader("User-Agent") %>
${ header["User-Agent"] }
<h3>获取全局初始化参数</h3>
${ initParam.username }
<h3>获取Cookie中的值</h3>
${ cookie.history.value }
<h3>获取PageContext中的对象</h3>
IP地址:${ pageContext.request.remoteAddr }
工程路径:${ pageContext.request.contextPath }
【EL执行运算】
<h1>EL的功能二:执行运算</h1>
<h3>EL执行算数运算</h3>
<%
pageContext.setAttribute("n1", "10");
pageContext.setAttribute("n2", "20");
pageContext.setAttribute("n3", "30");
pageContext.setAttribute("n4", "40");
%>
${ n1 + n2 + n3 }
<h3>EL执行逻辑运算</h3>
${ n1 < n2 } - ${ n1 lt n2 }
${ n1 > n2 } - ${ n1 gt n2 }
${ n1 <= n2 } - ${ n1 le n2 }
${ n1 >= n2 } - ${ n1 ge n2 }
${ n1 == n2 } - ${ n1 eq n2 }
<h3>EL执行关系运算</h3>
${ n1<n2 && n3 < n4 } - ${ n1<n2 and n3 < n4 }<br/>
${ n1<n2 || n3 < n4 } - ${ n1<n2 or n3 < n4 }<br/>
${ !(n1 < n2) } - ${ not(n1<n2) }
<h3>EL执行三元运算</h3>
${ n1 < n2 ? "正确":"错误" }
<h3>empty运算</h3>
${ user == null } - ${ empty user }
${ user != null } - ${ not empty user }
JSTL的标签库:包含了五类标签.
- core(核心标签),fmt(国际化标签),xml(XML标签),sql(SQL标签),fn(JSTL提供EL函数库)
使用JSTL: - 引入JSTL的相关的jar包.
- 在页面中引入标签库.<%@ taglib uri=”” prefix=””%>
【JSTL的核心标签的用法】 - if
- forEach
【JSTL的提供EL的函数库】
<h1>JSTL提供的EL的函数库</h1>
${ fn:contains("Hello World","Hello") }
${ fn:length("HelloWorld") }
${ fn:toLowerCase("ABCDE") }
<c:forEach var="i" items='${ fn:split("a-b-c-d","-") }'>
${ i }
</c:forEach>