JSP = JAVA + HTML + JSP自身的东西
JSP的脚本
<%! %> :翻译成Servlet中的成员内容. 定义变量,方法,类. -- 不建议.
<% %> :翻译成Servlet中service方法内部的内容. 定义类,变量
<%= %> :翻译成Servlet中service方法中out.print();
<%@ 指令名称 属性名称="属性值" 属性名称="属性值" .....%>
JSP中三个指令:page指令,include指令,taglib指令
* page指令
* language :jsp脚本中更实用过得语言,现在只能写java
* contentType :设置浏览器打开这个jsp的时候采用的字符集编码
* pageEencoding :设置文件保存到本地硬盘,以及生成Servlet后,Servlet保存到硬盘的编码;
* import :在jsp中引入类对象,但是import可以出现多次
* 设置全局的错误友好页面:
* 在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>
jsp中的include指令:只是将jsp中包含其他的页面
<%@ include file="logo.jsp" %>
<%@ include file="menu.jsp" %>
<h1>BODY部分</h1>
<%@ include file="footer.jsp" %>
jsp的taglib指令
* <%@ tabglib uri="标签的uri的路径" prefix="c" % > 需要导包
jsp的内置对象
* jsp的内置对象:在jsp中可以直接使用的对象
* jsp的9大内置对象
* request HttpServletRequest getParameter(),setAttribute(String name,Object value);
* response HttpServletResponse setHeader(String name,String value);getOutputStream();getWriter();
* session HttpSession setAttribute();getAttribute();
* application ServletContext setAttribute();getAttribute();
* page Object toString();wait();
* pageContext PageContext setAttribute();getAttribute();
* config ServletConfig getServletName();getServletContext();
* out JspWriter write(),print();
* exception Throwable getMessage(),getCause(); 设置isErrorPage=”true”
* page内置对象 :真实对象是Object,就是JSP翻译成Servlet后的类的引用.
out内置对象 :out和response.getWriter是不是同一个对象?区别是什么?
* 不是out真实对象JspWriter ,response获得Writer是PrintWriter.
** pageContext内置对象 :
* 获得其他的8个内置对象 :编写通用性代码或者框架的时候.
* 向JSP的四个域中存取数据 :
jsp的四大域对象
* pageScope : 一个页面 pageContext pageContext
* requestScope : 一次请求 request HttpservletRequest
* SessionScope : 一次会话 session Httpsession
* ApplicationScope : 应用范围 application ServletContext
jsp的动作标签(简化代码)
* <jsp:forward=" ></forwoad>
* <jsp:include > *****静态包含和动态包含的区别?(<%@ include%>和<jsp:include>)
* <jsp:param /> :用于带有路径的标签下,传递参数.
<jsp:useBean /> :用于在JSP中使用JavaBean.
<jsp:setProperty /> :用于在JSP中向JavaBean设置属性的.
<jsp:getProperty /> :用于在JSP中获得JavaBean的属性.
EL表达式
jsp表达语言 为了使jsp看起来更加简单
* 语法:${ EL表达式 }
* EL的功能:
* 获取数据:(JSP的四个域)
* 执行运算:
* 操作WEB开发的常用的对象:
* 调用Java中方法:--很少用.
<h1>EL功能三:操作WEB开发常用的对象</h1>
pageScope,requestScope,sessionScope,applicationScope - 获取JSP中域中的数据
param,paramValues - 接收参数.
header,headerValues - 获取请求头信息
initParam - 获取全局初始化参数
cookie - WEB开发中cookie
pageContext - WEB开发中的pageContext.
<h3>获取PageContext中的对象</h3>
IP地址:${ pageContext.request.remoteAddr }
工程路径:${ pageContext.request.contextPath }
JSTL:
*jstl(jsp Standard Tag library ,jsp标准标签库)是一个不断完善的开放源代码jstl标签库
jstl和EL结合,替换页面中<%%>
* core(核心标签),fmt(国际化标签),xml(XML标签),sql(SQL 标签),fn(JSTL提供EL函数库)
使用JSTL:
* 引入JSTL的相关的jar包.
* 在页面中引入标签库.<%@ taglib uri=”” prefix=””%>
JSTL的核心标签的用法
* if
* forEach
*
JSTL提供的EL的函数库
* ${ 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>