JSP
1.1 、什么是JSP
Java Server Pages:java服务器端页面,也和Servlet一样,用于动态Web技术!
最大的特点:
- 写JSP就像在写HTML
- 区别:
- HTML只给用户提供静态的数据
- JSP页面中可以嵌入JAVA代码,为用户提供动态数据;
1.2、JSP原理
思路:JSP怎么执行的
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Swevlet!
JSP最终会被转 换成一个Java类
JSP本质就是一个Servlet
//初始化
void jspInit();
//销毁
void jspDestroy();
//JSPService
void _jspService(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException;
1.3、JSP基础语法
JSP表达式
<%--JSP表达式
作用:用来将程序输出,输出到客户端
<%=变量或者表达式%>
--%>
<%= new java.util.Date()%>
JSP脚本片段
<%--JSP脚本片段--%>
<%
int sum=0;
for (int i = 0; i <= 100; i++) {
sum+=i;
}
out.println("<h1>sum="+sum+"</h1>");
%>
JSP脚本片段的在实现
<%--JSP脚本片段的在实现--%>
<%--在代码中嵌套HTNL元素--%>
<%
for (int i = 0; i < 5; i++) {
%>
<h1>hello,word!<%=i%></h1>
<%
}
%>
JSP声明
<%!
static{
System.out.println("Servlet");
}
private int i=0;
public void maple{
System.out.println("maple");
}
%>
JSP声明:会被编译到JSP生成java类中,其他的,就会被生成到_jspSevice中!
<%%>
<%=%>
<%!%>
<%--注释--%>
1.4、JSP指令
<%--制定错误页面--%>
<%@ page errorPage="" %>
<%--显示的声明这是个错误的页面--%>
<%@ page isErrorPage="true"%>
<%--提取公共页面--%>
<%@include file=""%>
1.5 、9大内置对象
- PageContext 存东西 只在一个页面有效
- Request 存东西 只在一次请求有效
- response
- Session 存东西 只在一次会话有效
- Application 【SerlvetContext】 存东西 保存到服务器里面
- config 【SerlvetConfig】
- out
- page ,不用了解
- exception
EL表达式输 出 : ${}
request:客户端向服务器发送请求,产生的数据,用户看完了就没用了,比如:新闻
Session::客户端向服务器发送请求,产生的数据,用户看完了一会还有用,比如:购物车
Application :客户端向服务器发送请求,产生的数据,一个用户用完了,另一个还能用,比如:聊天数据;
1.6、JSP标签、JSTL标签、EL表达式
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
EL表达式:${}
- 获取数据
- 执行运算
- 获取web开发的常用对象
JSP标签
<%--jsp:include--%>
<%--http://localhost:8080/jsptag.jsp?name=maple&&age=12--%>
<jsp:forward page="/jsptag2.jsp">
<jsp:param name="name" value="maple"></jsp:param>
<jsp:param name="age" value="12"></jsp:param>
</jsp:forward>
JSTL表达式
JSTL标签库的使用就是为了弥补HTML标签的不足;它自定义了许多标签,可以供我们使用,标签的功能和java代码一样!
格式化标签
SQL标签
XML标签
核心标签(掌握部分)
JSTL标签库使用步骤
- 引入对应的taglib
- 使用其中的方法
- 需要在Tomcat的lib目录下手动导入JSTL包
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--引入JSTL核心标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>if测试</h2>
<hr>
<form action="coreif.jsp" method="get">
<%--EL表达式获取表单中的数据
${param.参数名}
--%>
<input type="text" name="username" value="${param.username}">
<input type="submit" value="登录">
</form>
<%--判断如果是管理员,这登录成功--%>
<c:if test="${param.username=='admin'}" var="isAadmin">
<c:out value="管理员欢迎你"></c:out>
</c:if>
<c:out value="${isAadmin}">
</c:out>
</body>
</html>