一、JSP概念
1.1 是什么
JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
1.2 组成部分
指令(@page),静态组成部分,java代码块,服务器端的标签
1.3 核心原理
tomcat(web容器启动的时候) 会把jsp文件 变成一个java 文件,并且把java文件编译。class文件每次访问jsp的时候就会访问这个java 文件的service 方法
1.4 和servlet的关系
jsp 就是 servlet,servlet 就是jsp jsp能干的servlet 都能干 既然已经有servlet,为什么还要有jsp呢(联系)
1.5 九大内置对象和四大作用域
- 九大内置对象包含4大作用域
- 概念: 在jsp的java代码块中不用声明就能直接使用的对象叫做jsp的内置对象(也叫隐式对象)
JSP | Servlet |
---|---|
pageContext | this |
request | request |
session | request.getSession() |
application | request.getServletContext() |
out | response.getWriter() |
response | response |
config | this.getServletConfig() |
page | this |
exception | exception |
二、el表达式
2.1 概念
让jsp的代码更加简化
2.2 怎么用
- 显示4大作用域中的值 pageContext request session application,如果4大作用域中都有这个key ,那么应该显示的最小的范围的值
//2.jsp
<%
request.setAttribute("key1", "rk1");
session.setAttribute("key1", "sk1");
application.setAttribute("key1", "ak1");
//转发
request.getRequestDispatcher(request.getContextPath()+"/3.jsp").forward(request, response);
//重定向
// response.sendRedirect("3.jsp");
%>
- 如果我们想 显示特定作用域的值怎么办?
//3.jsp
${key1}
<hr>
${requestScope.key1}<br>
${sessionScope.key1}<br>
${applicationScope.key1}<br>
- 运算和判断
${key1 + 1}<br>
${key1 > 2?"ture":"false"}
三、jstl
3.1 概念
JSTL(Java server pages standarded tag library,即JSP标准标签库)是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。
3.2 使用
-
导入标签库的jar包
-
在希望使用标签的库的页面上引入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- 使用<c:if
<c:if test="${1==1}">
<span>真</span>
</c:if>
<c:if test="${1!=2}">
<span>jia</span>
</c:if>
- 使用<c:forEach
List list = new ArrayList();
list.add(new User());
list.add(new User());
list.add(new User());
list.add(new User());
list.add(new User());
request.setAttribute("userinfo", list);
//转发
request.getRequestDispatcher("/3.jsp").forward(request, response);
<c:forEach items="${userinfo}" var="user">
${user}<br>
</c:forEach>