JSP (路径全部都是用绝对路径)
指令
作用:用于配置JSP页面,导入资源文件
格式:
<%@指令名称 属性名1=属性值1 属性名2=...%>
分类:
1.page:配置jsp页面(导包)
contentType:等同于response.setContentType
import:导包
2.include:导入页面资源文件
3.taglid:导入资源(jstl导入标签库)
注释(Ctrl+SHIFT+/)
1.HTML注释:
<!-- 内容-->
2.jsp注释:
<%-- 内容--%>注释所有(推荐使用)
内置对象(一共九个)
在jsp页面不需要创建直接使用的对象
变量名 真实类型 作用
1.pageContext PageContext 当前页面,共享数据,还可以获取其他八个内置对象
2.request HttpServletRequest 一次请求访问的多个资源(请求转发)
3.session HttpSession 一次会话的多次请求间共享
4.application ServletContext 所有用户间共享
5.response HttpServletResponse 响应对象
6.page Object 当前servlet的对象
7.out JspWriter 输出到页面上
8.config ServletConfig servlet的配置对象
9.exception Throwable 异常对象
MVC开发模式
不是设计模式,是一个编程思想或设计思想
MVC:
M:model 模型 (JavaBean)
完成具体的业务操作,如查询数据库.封装对象
V:View 视图 (JSP)
展示数据,界面展示
C:controller 控制器 (servlet)
获取用户的输入(请求数据)
调用模型
将数据交给视图来展示
优点:
耦合性低,方便维护,利于分工协作
重用性高
缺点:
使得项目架构变得复杂,对开发人员要求高
EL表达式
概念:一种表达式语言Expression Language
作用:替换和简化jsp页面中的Java代码
语法:${表达式}
注意:
jsp默认支持EL表达式
如果要忽略表达式
1.设置jsp中配置指令isELIgnore="TRUE",忽略所有
2.\${表达式}:忽略当前这个表达式
运算符:
算数运算符: 3/4 等同 3 div 4
3%4 等同 3 mod 4
比较运算符:
逻辑运算符: &&(and) ||(or) !(not)
空运算符:empty
功能:用于判断字符串和集合 数组三个的长度是否为零,判断三个的对象是否为null
${empty list}:表示判断集合 数组 字符串是否为null,或长度为零
${not empty list}:判断集合 数组 字符串是否不为null,并且长度大于零
获取值:
注意:EL表达式只能从域中获取值
语法:
1.${域名称.键名}:从域中获取指定键的值
域名称:
pageScope-->pageContext
requestScope-->request
sessionScope-->session
applicationScope-->application(ServletContext)
2.${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止,找到了就不再进行查找
3.获取对象属性值
${域名称.键名.属性名}
属性名(注:setter或getter方法中去掉set或get后面的名就是属性名)
4.获取集合-->el配合jstl使用
获取list值
${域名称.键名[索引]}
获取Map集合
${域名称.键名.key名称}
${域名称.键名["key名称"]}
注意:以上的获取方式,域名称都可以省略
隐式对象:
pageContext:
1.获取jsp其他八个内置对象
在jsp页面动态获取虚拟路径:${pageContext.request.contextPath}
作用:用于获取虚拟路径的编写
JSTL:
概念:JavaServer Pages Tag Library JSP标准标签库
是由Apache组织提供的开源免费的
作用:用户简化和替换jsp页面上的Java代码
使用步骤:
1.导入jstl相关jar包
2.引入标签库:taglib指令 <%@ taglib %>
3.使用标签
常用JSTL标签:(重点)
1.if
相当于Java代码的if语句
属性:
test必须属性,接受boolean表达式
如果为true,则显示标签体内容,如果为false,则不显示内容
一般情况下,test属性值会结合el表达式一起使用
如:test="${not empty list}",el表达式只能返回的是boolean类型
注意:
1.c:if 标签没有else情况,需要else,则再定义一个c:if标签
2.标签体中展示的是html代码,不是Java代码
3.$和引号之间不可以有空格
2.choose
相当于Java代码的switch语句
一般用if代替choose标签
3.foreach
相当于Java代码的for语句
1.完成重复的操作
java代码 : for(int i=0;i<10;i++){}
属性:
begin :开始值
end : 结束值
var : 临时变量
step : 步长 取值1相当于i++;取值2相当于i+=2
varStatus: 循环状态对象
index:容器中元素的索引,从零开始
count:循环次数,从一开始
2.遍历容器
java代码 : list.for
属性:
items:容器对象
var: 容器中元素的临时变量
varStatus: 循环状态对象
index:容器中元素的索引,从零开始
count:循环次数,从一开始
普通for:
<c:foreach
var -->定义变量
begin -->设置初始值
end -->设置结束值
step -->步长
varStatus
count -->第几次循环(从一开始)
增强for
<c:foreach
var -->定义变量
items -->要遍历的对象
varStatus
index -->当前元素在对象中的索引(从零开始)
count -->第几次循环(从一开始)
|
|