jsp
1.指令:用于配置jsp页面,导入资源
2.格式:<%@ 指令名称 属性名1=属性值 属性名2=属性值2 ...%>
3.分类:
page:配置jsp页面的
contentType:等同于response.setContentType()
- 设置响应体的mime类型以及字符集
- 设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncode属性设置当前页面的额字符集)
import:导包
errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
isErrorPage:标识当前也是是否是错误页面
- true:是,可以使用内置对象exception
- false:否,默认值,不可以使用内置对象exception
include:页面包含的。导入页面的资源文件
<%@ include file="top.jsp"%>
taglib:导入资源
<%@ taglib prefix="c" uri=" "%> prefix:前缀,自定义的
jsp注释
html注释:<!-- -->:只能注释html代码片段
jsp注释:<%-- --%> 推荐使用
Jsp的内置对象
MVC
m:Model,模型,javaBean 完成具体的业务操作 如:查询数据库,封装对象
V:view ,视图。jsp
C:controller 控制器。Servlet 获取用户的输入 调用模型 将数据交给视图进行展示
优点:耦合性低,方便维护,可以利用分工协作 重用性高
缺点:使得项目架构变得复杂,对开发人员要求高
El表达式
概念:Expression Language 表达式语言
作用:代替和简化jsp页面中java代码和编写
语法:${表达式}
注意:jsp默认支持el表达式。如果要忽略el表达式
1.设置jsp中page指令:isElIgnored="true" 忽略当前jsp页面中所有el表达式
2.\${表达式}:忽略当前这个el表达式
运算符使用:
算数运算符:+ - * /(div) %(mod)
比较运算符:
逻辑运算符:&&(and) ||(or) |(not)
空运算符:empty:功能是用于判断字符串,集合,数组对象是否为null或者长度是否为0 ${empty list}
${empty lis}:判断字符串,集合,数组对象是否为null或者长度为0
${not empty str}:表示判断字符串,集合 数组对象是否不为null,并且长度>0
取值
el表达式只能从域对象取值
语法:${域名城.名称}:从指定域中获取指定键的值
域名称
pageScope pageContext
requestScope request
sessionScope session
applicationScope application(servletContext)
举例:在request域中存储了name-张三 获取:${requestScope.name}
${域名}:表示依次从最小的域中查找是否有对应的值,直到直到为止 ${name}
获取对象:List集合,Map集合的值
对象${域名称.键名.属性名} 本质上会调用对象的getter方法
获取值
List集合:${域名称.键名[索引]}
Map集合:${域名城.键名.key名称} ${域名称.键名[“key名称”]}
隐式对象
el表达式中有11个隐士对象
pageContext:获取jsp其他八个内置对象 ${pageContext.request.contextPath}:动态获取虚拟目录
jstl标签
概念:JavaServer Pages Tag Library jsp标准标签库
作用:用于简化和替换jsp页面的java代码
使用步骤
- 导入jstl相关jar包
- 引入标签库 taglib指令 <%@ taglib%>
- 使用标签
if标签
属性 test:必须属性,接收boolean表达式
如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容
一般情况下,test属性值会结合el表达式一起使用
注意:if标签没有else情况,想要else情况,则可以在定义一个c:if标签
choose标签(相当于java中的switch语句)
choose 相当于switch声明
when相当于case
otherwise 相当于 default
foreach标签
1.完成重复的操作 for(int i=0;i<10;i++){}
属性:begin 开始值 end结束值 var临时变量 step步长 varStatus循环状态对象(index容器中元素的索引,从0开始,count循环次数,从1开始)
2.遍历容器
List<User> list
for(User user:list){}
属性:items容器对象 var容器中元素的临时变量
items=“list” var="str"
三层架构