1.入门
- <% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
- <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
- <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
//内置对象
- request
- response
- out:字符输出流对象。可以将数据输出到页面上。和response.getWriter()类似
- response.getWriter()和out.write()的区别:
- 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
- response.getWriter()数据输出永远在out.write()之前
2. 在jsp页面中不需要创建,直接使用的对象
一共有9个:
变量名 真实类型 作用
- pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象
- request HttpServletRequest 一次请求访问的多个资源(转发)
- session HttpSession 一 次会话的多个请求间
- application ServletContext 所有用户间共享数据
- response HttpServletResponse 响应对象
- page Object 当前页面(Servlet)的对象 this
- out JspWriter 输出对象,数据输出到页面上
- config ServletConfig Servlet的配置对象
- exception Throwable 异常对象
3.el语法:${表达式}
el获取域中的数据
<%
//在域中存储数据
session.setAttribute(“name”,“李四”);
request.setAttribute("name","张三");
session.setAttribute("age","23");
%>
el获取值
${requestScope.name}${sessionScope.age}
${sessionScope.haha}
<%--若无则显示空字符串--%>
${name}
<%–会从域里从小到大遍历搜寻–%>
${sessionScope.name}
在jsp页面动态获取虚拟目录
${pageContext.request.contextPath}
4.jstl标签
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
1)if:
<c:if test="
n
o
t
e
m
p
t
y
l
i
s
t
"
>
遍
历
集
合
<
/
c
:
i
f
>
2
)
s
w
i
c
h
:
<
r
e
q
u
e
s
t
.
s
e
t
A
t
t
r
i
b
u
t
e
(
"
n
u
m
b
e
r
"
,
3
)
;
<
c
:
c
h
o
o
s
e
>
<
c
:
w
h
e
n
t
e
s
t
=
"
{not empty list}"> 遍历集合 </c:if> 2)swich: <% request.setAttribute("number",3); %> <c:choose> <c:when test="
notemptylist">遍历集合</c:if>2)swich:<request.setAttribute("number",3);<c:choose><c:whentest="{number == 1}">星期一</c:when>
<c:when test="
n
u
m
b
e
r
=
=
2
"
>
星
期
二
<
/
c
:
w
h
e
n
>
<
c
:
w
h
e
n
t
e
s
t
=
"
{number == 2}">星期二</c:when> <c:when test="
number==2">星期二</c:when><c:whentest="{number == 3}">星期三</c:when>
<c:when test="
n
u
m
b
e
r
=
=
4
"
>
星
期
四
<
/
c
:
w
h
e
n
>
<
c
:
w
h
e
n
t
e
s
t
=
"
{number == 4}">星期四</c:when> <c:when test="
number==4">星期四</c:when><c:whentest="{number == 5}">星期五</c:when>
<c:when test="
n
u
m
b
e
r
=
=
6
"
>
星
期
六
<
/
c
:
w
h
e
n
>
<
c
:
w
h
e
n
t
e
s
t
=
"
{number == 6}">星期六</c:when> <c:when test="
number==6">星期六</c:when><c:whentest="{number == 7}">星期天</c:when>
<c:otherwise>数字输入有误</c:otherwise>
</c:choose>
3)for:items:容器对象,var:容器中元素的临时变量,varStatus:循环状态对象, index:容器中元素的索引,从0开始,count:循环次数,从1开始。
<c:forEach items="${list}" var=“str” varStatus=“s”>
${s.index} ${s.count} ${str}
</c:forEach>