=======================
@代表全局范围
下面皆是Page的属性
language="java" 是代表使用什么语言嵌入
contentType浏览器和输出到浏览器用什么编码 前面的text/html 是什么类型的文件,
如果写的是 video/mp4 那么打开这个jsp的时候就是什么类型打开
pageEncoding是jsp的内容编码,就是这个页面的
import="java.util.Map" 用于导包
session="true" 如果是true可以直接在jsp页面里能直接使用session对象,默认是true,
在jsp的源代码里面会获取session对象,如果是false则jsp源码里面没有获取
errorpage="error.jsp" 这个error.jsp是我们自己写的页面,如果页面出错,比如代码异常了,那么就会跳到这个页面
isErrorPage="true" 代表这是个错误信息显示界面,和上面的配合,如果出错了,在这个页面直接exception.toString()
下面皆是include的属性
<%@ include
file="other.jsp" 包含另外一个页面,另一个页面会执行的到本页面当中,包括所有标签
下面皆是taglib的属性,用于获取另一个jsp的标签库
<%@ include
uri="" 标签库的路径
prefix 标签库的别名
jsp的动作标签
<jsp:xxx "></jsp:xxx> 注意有一个 : 这个符号
<jsp:include page="123.jsp"
动态包含,不把目标界面的所有标签拿过来,而是只拿运行结果过来
<jsp:forward page="other.jsp"
跳转到哪个页面,等同于请求转发
request.getRequestDispatcher("_006_successful.html").forward(request, response);
<jsp:parm value="" name=""
提供参数,一般嵌套在<jsp:forward 标签里,表示到这个页面顺便把参数带过去
然后那个jsp页面直接request.getParameter("address")即可
jsp九个内置对象,exception对象只有在开头写了<%@ isErrorPage="true" 才能使用
上面4个是作用域对象,表示这些对象可以储存,取值范围有限定,通过SetAttibute和GetAttibute
但是page的作用域只在当前页面
但是request要注意一点,如果是重定向跳转页面,那么这个值也没有了,因为重定向要访问俩次服务器,而我们是第一次
设置的数值,所以第二次跳转到这个页面的时候,数值就为null,如果用的是转发请求那么还可以获取数值
而我们直接访问跳转的那个页面,不去执行SetAttibute 那么这3个都为null,最后一个application有数值
最后一个application整个工程都可以访问
下面还有5个
EL表达式
使用EL表达式取出作用域里面的数值
如果存的是数组,下面使用数组的时候的逗号不代表任何意思,表面字符
如果存的是集合数据
如果存的是map数据
在4个作用域取值的规则
判断user对象是否为空
EL的11个隐式对象
使用EL表达式
JSTL 表达式
prefix就是一个别名,随便起,uri是路径,固定是core,不过要是1.1版本
JSTL的使用
c:set是设置一个对象的数值,并且放到4个作用域里面,scope是设置存储的域,默认是page
那么我们在域里取值也要指定域
c:if 的test里面是需要写EL表达式的,if没有else,而 if后面的var是代表定一个对象,里面是对象名,去接受test的数值
然后可以在外部去使用这个对象
foreach遍历
相当于上面是用普通的数组遍历,而下面是用真正的foreach遍历