Jsp
Sun公司研发的动态生成html页面的一种技术
Jsp 是java与html的结合体
可以在任意系统上运行
担任显示层角色
JSP本质就是Servlet
语法
- 注释(客户端看不到)
<%-- xxx --%>
2.声明
<%! java代码 %> #定义方法和成员变量
3.脚本
<% java代码 %> #定义局部变量和执行语句
4.表达式
<%=2%> # 用于输出变量
5.指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
isErrorPage=""
errorPage =''
import=""
errorPage="error.jsp" # 文件名
6.动作
usebean设置实体类 <jsp:useBean id="o1" scope="session" class="com.x" ></jsp:useBean>
# scope为域对象范围(四大域对象)
getproperty
setproperty
forward 转发
include 包括 <jsp:include page="xxxx.jsp"></jsp:include>
<jsp: xxx> xxx是userbean include
<%out.write(xxxx)%>
九大内置对象和四大作用域
九大内置对象
-
out.write('xxxx')
-
pageContext 获得其他八大对象
-
request 请求参数
-
response
跳转页面 响应页面数据
-
Session
会话技术 域对象
-
application(servletContext)
上下文对象 : 取绝对路径 全局参数 域对象
-
exception 异常
-
page : 代指当前jsp页面,相当于javathis的引用
-
config : servletConfig 获取servlet配置的参数
四大作用域
-
servletContext
整个过程(整个项目下jsp和servlet都可以获取)
-
session
一次会话(多页面)
-
request
一次请求(多页面==》 转发)
-
pageContext
当前jsp页面
EL表达式 JSTL
Expression Language
EL会自动搜索4个作用域 ${username}
Jsp Standard Tag Library Jsp标准标签库,提供额外标签 。
其目是 要使用类似于html标签的格式 来完成对页面的流程控制 (还是为了减少java代码)
基本语法
${1+1}
${requestScope.username}
${sessionScope.username}
${10 - 3}
${true && true}
${sessionScope.username == tom}
${!empty sessionScope.age}
${param.password} #?password=1231 ==> 1231
<%--EL会自动搜索4个作用域 --%>
${username}
- for 循环
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${requestScope.list}" var="name">
<tr>
<td>${name}</td>
</tr>
</c:forEach>
<%--循环遍历(常用)--%>
<c:forEach items="1,2" var="temp" varStatus="vt">
<spa>遍历的值${temp}</spa>
<span>循环索引${vt.index}</span>
<span>循环次数${vt.count}</span>
<span>当前的值${vt.current}</span>
<span>是否是第一个${vt.first}</span>
<br/>
</c:forEach>
- if
<c:if test="fasle">
<h1>判断通过了</h1>
</c:if>
<c:if test="${empty myname}">
<h1>myname是空的</h1>
</c:if>
<c:if test="${!empty myname}">
<h1>myname不是空的</h1>
</c:if>
<%--选择结构--%>
<c:choose>
<c:when test="true">
when1
</c:when>
<c:otherwise>
其他的
</c:otherwise>
</c:choose>
- 分页逻辑
<%--判断用户是否传递了page参数--%>
<c:if test="${param.page == null}">
<c:set var="page" value="1" scope="request"/>
</c:if>
<c:if test="${param.page != null}">
<c:set var="page" value="${param.page}" scope="request"/>
</c:if>
当前是:${page}
<%--根据与当前页面 判断是否要显示按钮--%>
<c:if test="${page > 1}">
<a href="pagetest.jsp?page=${page-1}">上一页</a>
</c:if>
<c:if test="${page < 5}">
<a href="pagetest.jsp?page=${page+1}">下一页</a>
</c:if>