JSP中的注释方法
%--注释内容--%可以同时注释Java代码和超文本
%!java代码;%
带!和; 生成的源码在service()外是类级别的参数(可以理解为全局变量)
%Java代码;%
不带!带; 生成的源码在service()内,是局部变量每次提交请求修改后的参数会重新赋值为之前的
%=Java代码%
表达式的输出方式生成的源码在service()内直接输出后面没有;
%
includefile=jsp.jsp%将file设置的外部页面引入到本页面使之成为一个页面
在file参数的页面里面书写本页面的参数由于页面中没有参数所以有的编译器会报错但是实际上并没有错误
%
page%page指令元素用来设置页面的具体参数各个参数之间用空格隔开
language:页面脚本类型书写代码的种类
import:页面导包多个包用逗号(,)隔开不推荐使用快捷键
pageEncoding:设置转换编码如果使用默认的iso--1则无法保存中文
session:打开页面是否创建session支持session会话跟踪机制如果为true则支持
buffer:页面缓存默认是8kb
info:用来设置页面的签名和书写时间等信息
通过getServletInfo()可以取出
isELIgonred:是否忽略EL表达式false不忽略
contentType:设置软编码参数一般是text/html;charset=utf-8
autoFlush:页面是否支持自动刷新默认不支持
isThreadSafe:当前线程是否安全默认是true
true的话是单实例单线程只能一个用户连接
所以需要设置为false为单实例多线程的
isErrorPage:当前页面能否使用exception内置对象true为可以使用
errorPage:当前页面如果出现异常自动跳转到哪个页面
-----------------
language=java
import=java.util.*
pageEncoding=UTF-8
session=true
buffer=8kb
info=zspmsir
isELIgnored=false
contentType=text/html;charset=utf-8
autoFlush=false
isThreadSafe=true
isErrorPage=false
errorPage=error.jsp
EL表达式
凡是称之为表达式的都是仅仅可以显示数据无法进行复杂的业务逻辑
格式:${要展示的数据} 如果大括号内存在引号则引号内的数据直接看作是字符串直接输出
算数运算
${1+2}=${1+2}
关系运算
${12}
逻辑运算
${}
三目运算
${?1:0}
范围取值
${pageScope.elena}
格式:${范围.key}范围有(pageScope,requestScope,sessionScope,applicationScope)
在key值没有冲突的情况下可以省略范围直接书写${elena}
如果不指定范围默认输出范围最小的
接受页面通过?传递过来的值
${param.key} param不能省略
获取配置在web.xml中的全局变量
${initParam.key} 其中的key支持中文
拿取实体类属性值
(类型)session.getAttribute(key).getName()
(类型)是自定义的类 getName()是自定义的方法
${sessionScope.key.name}
注意EL表达式并不一定能显示任意值必须根据key从范围中拿取
如果无法显示则不显示任何数据也不显示null
jstl(JSP标准标签库)
%
page%用来设置全局参数%
include%用来引入外部文件%
taglib%声明使用的标签JSP第二代标签
赋值
c:setvar=elenavalue=elenaPagescope=page/c:set
var:key值 value:value值 scope:范围(page,request,session,application)
取值
c:outvalue=要输出的内容c:out
c:outvalue=%=str/c:out
c:outvalue=${pageScope.elena}/c:out
c:outvalue=${requestScope.elena}default=查无此人/c:out
value:要输出的值可以使用Java代码可以书写字符串可以使用El表达式
default:无法取值默认输出的内容
删除值
c:removevar=keyscope=session/
var:要删除的key scope:要删除的范围
如果不指定范围默认删除所有匹配key的值
流程控制
c:iftest=${32}
c:outvalue=条件满足/c:out
/c:if
test:返回true的话则执行里面的内容
空验证
c:iftest=${emptykey}
c:outvalue=满足条件/c:out
/c:if
${emptykey}:空验证判断是否为空
无法取值返回true
可以取值返回false
类似ifelse
c:choose
c:whentest=${32}
c:outvalue=条件满足/c:out
/c:when
c:otherwise
c:outvalue=条件不满足/c:out
/c:otherwise
/c:choose
注意c:choose必须和c:when在一起使用
內建动作
jsp:useBeanid=keyclass=