JSP
Java Server Pages:java服务器端页面,和Servlet一样,用于动态Web技术!
特点
写JSP就像写HTML
区别
HTML只给用户静态的数据
JSP可以嵌入JAVA代码,为用户提供动态数据
JSP原理
-
代码层面没有问题
-
服务器内部工作
Tomcat有一个work目录
IDEA中使用Tomcat会在IDEA的Tomcat中生成work目录
JSP本质上就是一个Servlet
在JSP页面中
只要是JAVA代码就会原封不动输出 out.print(name);
只要是HTML代码就会被转换成 out.write(" ");
JSP基础语法
JSP表达式
<%= 表达式 %>
JSP脚本片段
<% 脚本片段 %>
JSP声明
<%!
static{
System.out.println("hello");
}
private int globalVar = 0;
%>
JSP声明会被编译到JSP生成的JAVA类中,其他的会生成在JSPService方法中
JSP指令
<%@page args...%>
<%--会将两个页面合二为一--%>
<%@include file="common/header.jsp"%>
<%--拼接页面本质上是三个页面--%>
<jsp:include page="/common/header.jsp";/>
9大对象
- pageContext (pageContext.setAttribute())//保存的数据只在一个页面中有效
- request (request.setAttribute())//保存的数据在一次请求中有效,请求转发会携带这个数据
- response
- session(session.setAttribute())//保存的数据在一次会话中有效,从打开浏览器待关闭浏览器(也可以设置时长)
- application【ServletContext】(application.setAttribute())//保存的数据在服务器中一直有效,从打开服务器待关闭服务器
- config【ServletConfig】
- out
- page
- exception
作用场景:
- request 客户端向服务器发送请求,产生的数据,用户看完就没了,比如:新闻,用户看完没用了
- session客户端向服务器发送请求,产生的数据,用户看完一会还有用,比如:购物车
- application 客户端向服务器发送请求,产生的数据,一个用户看完,其他用户还有用,比如:聊天记录
JSP标签,JSTL标签,EL表达式
EL表达式:${}
导入的包 JSTL,Standard
- 获取数据
- 执行运算
- 获取web开发的常用对象
JSP标签
<jsp:forawrd page="/j123/jsp">
<jsp:param name="name" value="ijuy"><</jsp:param>>
<jsp:param name="age" value="12"><</jsp:param>>
<</jsp:forward>>
JSTL标签
核心标签
<%@ taglib prefix="c";uri="http://java.sun.com/jsp/jstl/core "%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h4>if测试</h4>
<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="isAdmin">
<c:out value="hello,admin"></c:out>
</c:if>
<c:out value="${isAdmin}"></c:out>
</body>
</html>
格式化标签
xml标签
sql标签