JSP
概述
Java server page
jsp的本质就是Servlet
执行原理
jsp会翻译成Servlet(.java).Servlet编译成class文件
流程
第一次访问jsp文件的时候,服务器收到请求,jspServlet会去查找对应的jsp文件
找到之后,服务器会将这个jsp文件转换成java文件(Servlet)
服务器编译java文件,生成class文件
服务器运行class文件,生成动态的内容
服务器收到内容后返回给浏览器
基本语法
<% … %>java程序片段
<%=…%>输出表达式
<%! …%>声明成员变量
EL
${…}
获取数据
执行运算
获取数据
${requestScope|sessionScope|applocationScope.属性名}
<%--
Created by IntelliJ IDEA.
User: 10341
Date: 2020/9/9
Time: 9:41
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<% request.setAttribute("rkey", "rrr");
session.setAttribute("skey", "sss");
application.setAttribute("akey","aaa");
%>
获得request里面存的数据:<br/>
<%=request.getAttribute("rkey")%><br/>
${requestScope.rkey}<br/>
获得session里面存的数据:<br/>
<%=session.getAttribute("skey")%><br/>
${sessionScope.skey}<br/>
获得application里面存的数据<br/>
<%=application.getAttribute("akey")%><br/>
${applicationScope.akey}<hr/>
简单写法<br/>
${rkey}<br/>
${akey}<br/>
${skey}<br/>
</body>
</html>
获取数组
${数组属性名[index]};
其中key是数组属性名
获取list
${list属性名[index]} 或 ${list属性名.get(index)}
其中属性名就是存入域对象里面的key
获取Map
${map属性名.键} 或 ${map属性名.get(键)}
属性名就是key
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: 10341
Date: 2020/9/9
Time: 19:44
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String[] array = {"aaa","bbb","ccc"};
request.setAttribute("a",array);
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
session.setAttribute("l",list);
Map<String,String> map = new HashMap<String,String>();
map.put("akey","aaa");
map.put("bkey","bbb");
map.put("ckey","ccc");
request.setAttribute("m",map);
%>
${a[1]}
${l[1]}
${m.akey}
</body>
</html>
获取bean
${bean的属性名.javabean属性}
跟map有点像
[]和.方式的区别
只要是能用.的都可以用[]
带下标(数组,list)要用[]
带特殊字符的要用[]
获取三个域范围的值,存入三个域中方
能获取的则获取,获取不到返回"字符串,不是返回null"
$(域中属性名):依次从requestScope | sessionScope |applicationScope中查找指定的属性,若找到,立即返回,且结束该次查找,若找不到返回”“
若属性名中出现了”.“ “+” "-"等符号,快捷获取的方式不好使,必须使用以下方式{xxxScope[“属性名”]}
JSTL标签库
为了简化在jsp页面上展示数据 遍历数据 判断数据
五大标签库
核心标签库
xml标签库
国际化/格式化标签库
数据库标签
EL自定义函数