JSP注释
显示注释
<!--><-->
隐示注释
<%-- jsp注释--%>
//单行注释
/*多行注释*/
Scriptlet脚本小程序
- 第一种:Java脚本段,可以写java代码,定义局部变量。编写语句等
- <%%>
- 第二种:声明全局变量、方法、类等
- <%!%>
- 第三种:输出表达式,可以输出变量或者字面量
- <%=数值%>
include静态包含标签
<%@include file="要包含的文件相对地址"%>
静态包含就是将内容进行了直接的替换,就好比程序定义中的变量一样,使servlet引擎转译时,就把此文件内容包含了进去(两个文件的源代码会整合到一起,全部放到jspService方法中),所以只会生成一个servlet,所以两个页面不能有同名的变量,运行效率高一点点。耦合性高,不够灵活。
include动态包含
动态包含在代码的编译阶段,包含和被包含部分是两个独立的部分,只有当运行的时候,才会动态包含进行,好比方法的调用。可以定义同名变量,效率高耦合度低。
<jsp:include page="要包含的文件相对地址"></jsp:include> 无参数时,中间不要写任何东西。
参数表示!
<jsp:param name="uname" value="admin"/> name属性不支持表达式,value属性支持表示
<jsp:param name="msg" value="<%=str%>"/>
JSP四大域对象
pageContext作用域:在当前页面有效,跳转后无效、
request作用域:在一起请求中有效,服务器跳转有效,客户端跳转无效、
session作用域:在一此次会话中有效,服务器和客户端跳转有效
application作用域:在整个应用中有效
设置作用域对象
pageContext.setAttribute("name1","zhangsan");
out.print("page范围"+pageContext.getAttribute("name1"));
jsp服务器跳转
<jsp:forward page="要跳转到的jsp页面"></jsp:forward>
EL表达式的使用-获取数据
获取List
获取List的size${list.size}
获取List的指定下标的值:${list[1]}
获取Map
${map.key}或者${map["key"]}
map和list都是代表限域变量名
获取JavaBean对象
javabean中的属性字段必须提供get方法
${user.属性}或者${user.getUpwd()}
EL表达式的使用-empty 不为空加!
<%
request.setAttribute("str1","abc")
request.setAttribute("str2","")
request.setAttribute("str3",null)
%>
域对象为字符串,不存在的对象为true,空也为true,null也为true。
域对象为集合list或者map,null为true,长度为0也为true,
域对象为javabean对象,null为true,空对象:false
${empty str} //true
${empty str1} //false
${empty str2}//true
${empty str3}//true
EL运算
== eq 等值比较
${+ - * /(div) && ||}