复习:
1、jsp 动作元素:
useBean setProperty getProperty param forwar include
class
id scope : 根据id 到指定作用域中去查找一个对象,找不到了 创建
默认的作用域空间:page; request session application
javabean 必须有一个 无参数构造函数;
setProperty property(对象属性名) name(id 对象名) value
param 去获得一个 请求参数.
property="*", 把我们表单中所有值,都赋值给javabean 对象的属性, 属性名一定要yizhi
getProperty 取得javabean 对象上属性值,property name ; 输出到页面(out.println())
forward 请求 转发, 一旦转发 就不再回来, 转发的过程 jsp:param 参数;
include 请求转发(动态包含),把另外一个页面的执行结果包含进来。 携带参数。
2、 新增: 一种情况 在数据中,主键有这个自动增长,
二种:在程序自己活得主键值, 查询表中主键的最大值,加1;(调用这个获取主键方法,是在业务层调用,设置新增那个对象上)
3、分页查询:
1) 页面上超链接
// 判断 如果你是第一页 ,那么首页 上一页 就不能点击
// 如果你是最后一页,尾页 下一页 就不能点击
<a href="UserServlet.do?page=1">
<a href="UserServlet.do?page=<%=nowPage-1%>">
2) servlet 中分页参数的设置
nowPage pageSize count totalPage
// 接收传递你要显示的页数
// 查询一个总记录数
// 计算总页数
// 保存reques中
// 数据dao imit (nowPage-1)*pageSize,pageSize
3) 分页查询sql 语句 ,一个公式:limit (nowPage-1)*pageSize,pageSize
EL表达式语言: 本身就属于jsp,所有使用 ,就可以直接使用,page ,指令默认就使用el。
表达式语言: 操作数 和 运算符 一起使用 ,2+3 a+b (a+b)|| 3>?4 username
${} 把表达式 写在 {}
el的作用: 表现 语言 Expression Language
1、运算 (算术 比较 逻辑)
2、可以去的 作用域中 属性值;
3、 可以取得 参数 url? username = zhangsan
4、 取得 作用域中 javabean 的属性
5、 作用域中 容器的属性,javabean 的属性;
6、 直接把取得的数据 输出到页面.
7、 取得的值 作为 标签属性值 <xxxx value="${}">
8、 进行自动类型转换的
9、 只能取得 作用域值
10、 如果你没有指定 作用域,那我就去page request session application
jstl
Javaserverpage Standard Tag Language java服务器页面标准标签语言。
Jstl:
Jsp使用的一个标签儿库,标准标签儿库,当然还有其他很多各种标签儿库。它最核心的就是Core,因此我们通常都用c作为核心库的开头标签儿。其他的还有
I18N国际标签儿库,
SQL,
Functions,
XML
分别封装了一部分内容,但是效率执行速度都不是特别好,所以只用它最好用,最核心的部分,也就是核心库,另一个常用的是格式化标签库。然后作为sql我们自己写的模板类很好使,xml有专门的dom4j,所以每一个我们都用最好的那一份。后面会学一些框架,也很厉害。总之都用它最好用的部分。
因为jstl的全名是javaserverpage standard Tag Language 所以他只能在jstl里面使用,他需要准们对应的jar包。
不管使用那个一个标签儿库,都需要在页面中使用指令taglib 进行引入。
Jstl标签库中核心标签库:core,c标签。
1、设置标签set remove out(这里面的remove要慎重,不指明作用域,只要是相同名字的就都删除了。)
2、结构标签
If choose when foreach
不管是 jstl的标签,还是我们今后要自定义的标签:(都需要满足一下三点:)
1、标签的处理程序(Java代码)
2、标签的描述文件(引入的标签叫什么)
3、Jsp使用标签,(taglib引入)
关于<c:if test="1">NO
<c: if test="1==1">NO
<c: if text="${1==1}"> YES
Map中key的值采用的是set是无序的。