Jsp,el,jstl的使用
Jsp简述
JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,它实现了Html语法中的java扩张(以 <%, %>形式)。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
用法:
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%--
方式1: 编译后代码存放在Service方法中
--%>
<%
int num = 123;
System.out.println("num="+num);
Random rd = new Random();
%>
<%--
方式2:这里的代码会被编译到成员位置
--%>
<%!
int num = 12345;
public void method(){
System.out.println("xxxxxx");
}
%>
<%--
方式3: 会将内容直接输出到页面上
--%>
<%="hello"%>
</body>
</html>
EL用法
- EL主要的语法结构:
${sessionScope.user.sex}
- 核心方法
setAttribute(键,值);
getAttribute(键);
removeAttribute(键);
- 四个域对象:
HttpServletContext application; 整个项目
HttpSession session; 一次会话
HttpServletRequest requst ; 一次请求
HttpPageContext pageContext; 当前页面
- 用法
<%--四大域中存数据--%>
<%
application.setAttribute("name1", "baoqiang1");
session.setAttribute("name1", "baoqiang2");
request.setAttribute("name1", "baoqiang3");
pageContext.setAttribute("name1", "baoqiang4");
%>
<%--方式1:从四大域中取数据--%>
<%--这种方式,如果找不到对应的键,返回null--%>
<%=application.getAttribute("name1")%>
<%=session.getAttribute("name2")%>
<%=request.getAttribute("name3")%>
<%=pageContext.getAttribute("name4")%>
<%--方式2:从四大域中取数据(EL表达式)--%>
<hr/>
<%--这种方式,如果找不到对应的键,返回空串--%>
${applicationScope.name1}
${sessionScope.name2}
${requestScope.name3}
${pageScope.name4}
<hr/>
<%--方式3:从四大域中取数据(EL表达式)--%>
<%--这种方式,如果找不到对应的键,返回空串--%>
<%--这种方式,会从作用范围最小的域开始找,所以每个域的键的名字不能重复--%>
${name1}
${name2}
${name3}
${name4}
JSTL用法
JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。
- 引入标签库
<%--引入jstl--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- <c:if>标签
语法格式:
<c:if test="xx" [var="xx"] [scope="{page|request|session|application}"] >
执行体
</c:if>
- <c:forEach>标签
1.迭代集合对象:
<c:forEach items="xxx" [var="xxx"] [varStatus="xxx"] [begin="xxx"] [end="xxx"] [step="xxx"]>
循环体.....
</c:forEach>
2.迭代数组:
<c:forEach begin="xxx" end="xxx" [var="xxx"] [varStatus="xxx"] [step="xxx"]>
循环体....
</c:forEach>
```