一、 Jsp隐含(内置)对象(**)
1、request(*)
2、response
3、out
4、config
5、application
6、exception
- Throwable
- jsp翻译成Servlet所抛出的异常
7、session(*)
8、page
- Object
- 相当于this,用来指代翻译成的那个Servlet
9、pageContext(*)
- PageContext
- 是管理者,通过它可以获取其他8个隐含对象
二、开发模式
1、模式1 (高耦合)
2、模式2
- 引入MVC设计模式对代码分层,降低代码的耦合度
- MVC是经典的设计模式,是代码的分层思想:
- M:Model,业务层,用来处理业务。
- V:View,视图层,用来展现数据
- C:Controller,控制层,用来进行调度,是业务层和视图层的桥梁。其目的是要将代码解耦,便于开发和维护
三、转发和重定向
1、转发和重定向的相同点
- 都是解决WEB组件之间的跳转问题,WEB组件:Servlet/Jsp
2、转发和重定向的区别
- 依赖时用转发,查询时转发
- 不依赖时用重定向,增加、修改、删除后重定向到查询
-转发的特点
- 1、一次请求
- 2、地址不变
- 3、一个请求只有一个request,两个组件可以用过它共享资源
- 4、只能转发到项目内部的资源
- 重定向的特点
- 1、二次请求
- 2、地址改变
- 3、二个请求有两个request,两个组件无法通过它共享数据
- 4、可以重定向到项目外部的资源
四、 EL和JSTL
1、作用
2、EL表达式的作用
访问Bean的属性
<!-- 如何获取Bean属性 -->
<!-- request.getAttritube("stu").getName() -->
<p>姓名:${stu.name}</p>
<!-- request.getAttritube("stu").getAge() -->
<p>年龄:${stu["age"]}</p>
<!-- request.getAttritube("stu".getCourse().getId()) -->
<p>课程:${stu.course.id}</p>
输出简单的运算结果
<!-- 2.支持运算 -->
<p>年龄+5:${stu.age+5}</p>
<p>20-30之间:${stu.age>20 && stu.age<30}</p>
<p>判空:${empty stu }</p>
获取请求参数
<p>参数:${param.user }</p>
3、EL的取值范围
4、什么是JSTL
- Jsp Standard Tag Library,Jsp标准标签库。Apache组织开发后捐献给Sun
4.1 如何使用JSTL
- 1、将JSTL标签对应的jar文件拷贝到WEB-INF/lib目录下
- 2、使用taglib指令导入要使用的JSP标签
<%@taglib uri="" prefix=""%>
例如
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- uri:jsp标签的命名空间
- prefix:命名空间的前缀
- 3、foreach标签
<!-- forEach -->
<!-- items:声明遍历的数据
var:给每次循环所获得的数据命名-->
<p>
<c:forEach items="${stu.interests}" var="i">
${i}
</c:forEach>
</p>
<!-- if -->
<p>
<c:if test="${stu.sex=='M'}">男</c:if>
<c:if test="${stu.sex!='M' }">女</c:if>
</p>
5、JSTL工作原理