JSP
1. 理解
Java Server Page 一种动态页面技术。本质上就是Servlet
运行原理:将jsp文件 ----> .java ----> .class 运行
2. JSP的使用策略
1. 可以当成纯粹的页面使用 和 html 使用语法一样(推荐)
2. 可以当成纯粹的Java代码使用
<% java代码 %>
3. 可以实现页面中嵌套Java代码
jsp和Servlet各司其职:将业务处理和页面展示分离
jsp只做页面数据展示
Servlet处理业务
3. JSP的核心内容
① 三大指令
· page 指定页面的初始化配置信息(通常取默认值即可)
contentType="text/html;charset=UTF-8" 内容的类型
language="java" 支持语言
import="java.util.ArrayList" 引入依赖包
autoFlush="true" 刷新当前页面
session="true" 是否可用session
errorPage="02-error.jsp" 当前页面异常 指定跳转的错误页
isELIgnored="false" 是否忽略EL表达式
· taglib 引入第三方标签库
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
· include 包含其他页面
<%@include file="02-header.jsp"%>
② 六大动作
1. 转发
<%--动作1:完全转发--%>
<%--<jsp:forward page="02-three.jsp"></jsp:forward>--%>
<%--动作2:不完全转发--%>
<jsp:include page="02-three.jsp"></jsp:include>
<%-- 动作3:转发携带参数 --%>
<jsp:param name="xx" value="王二小"/>
2. 使用对象
<%--动作4:使用对象--%>
<jsp:useBean id="p" class="com.ujiuye.bean.Person"></jsp:useBean>
<%--动作5:设置对象属性--%>
<jsp:setProperty name="p" property="name" value="王二小"></jsp:setProperty>
<%--动作6:获取对象属性值--%>
<jsp:getProperty name="p" property="name"/>
③ 九大内置对象
内置对象 天生自带的对象 out
页面输出对象 Exception
异常对象 request
请求对象 response
响应对象 application ServletContext session
会话 config
Servlet配置对象 Page
this pageContext
最小共享域对象 范围只在当前页面共享 可以实现操作任何共享域的数据
④ EL表达式
格式: ${}
作用: 获取共享域中的数据
原理:根据属性的get方法名取数据 和属性名没有关系
// map.get(map2); ----> map.map2
// xiFu.getName(); ----> xiFu.name
⑤ JSTL标签库
理解: 便于jsp中对数据展示的一些标签
使用:
1. 下载导包 jstl.jar standard.jar
2. 使用指令引入当前jsp页面中
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3. 常见标签
<%--1. 遍历集合标签--%>
<c:forEach items="集合" var="集合每一个元素变量">
<%--2. 普通遍历--%>
<c:forEach begin="起始值" end="结束值" step="步长" var="变量名">
<%--3. 判断--%>
<c:if test="判断条件">
<%--4. 变量操作--%>
<%--变量的定义--%>
<c:set var="num" value="200"></c:set>
<%--获取变量值--%>
<c:out value="${num }" default="未定义"></c:out>
<%--删除变量--%>
<%--<c:remove var="num"></c:remove>--%>
<%--5. 选择标签--%>
<c:choose>
<c:when test="${num > 100 }">
VIP老白菜
</c:when>
<c:when test="${num > 50 }">
VIP大白菜
</c:when>
<c:when test="${num > 20 }">
VIP小白菜
</c:when>
<c:otherwise>
VIP没白菜
</c:otherwise>
</c:choose>
登录注册
注册
① 注册页面 register.jsp
② 编写RegistServlet处理 注册业务 注册成功跳转登录页
③ 编写登录页面 login.jsp
登录
① login.jsp
② 编写LoginServlet处理登录业务 登录成功跳转到首页的HomeServlet
③ 编写 HomeServlet
④ 编写 home.jsp