补充:
1.一个JavaBean的成员属性称为:对象属性
该类的get,set方法称为:Bean属性
2.JSP中taglib指令
<%@taglib uri="JSP标签的命名空间",prefix="命名空间的前缀"%>
转发
1.转发和重定向都是用来解决Web组件之间的跳转问题
Web组件:处理请求的组件,即Servlet和JSP
2.两个Web组件如果有依赖关系,则用转发
两个Web组件如果没有依赖关系,则用重定向
3.转发的实现
1)绑定数据到request对象
request.setAttribute("数据的key即绑定名",要绑定的数据);
读取绑定值:request.getAttribute("绑定名");
2)获得转发器
RequestDispatcher rd=request.getRequestDispatcher("要转发的地址")
3)转发
rd.forward(req,res);
通常2,3步合在一起写
4.转发的特征:
1)转发过程是一个请求
2)浏览器地址不变
3)两个组件共用一个request,所以它们可以通过request共享数据
4)不能转发到外部资源,只可局限在内部类
5.重定向特征:
1)重定向过程是2个请求
2)浏览器地址会发生改变
3)两个组件分别使用两个request,所以不能通过request共享数据
4)可以重定向到外部资源
6.使用时机
1)一般查询时会使用转发
2)一般增加,修改,删除后重定向到查询
EL表达式,JSTL标签
1.EL表达式是一套简单的计算规则,用于给JSP标签的属性赋值,也可直接用来输出,
其也可脱离标签单独使用
2.EL表达式作用:(取数据、输出数据)
1)访问Bean的属性(获取get,set方法)
*方式一:${对象名.属性名}
*方式二:${对象名["属性名"]}
*取值范围:默认情况下,EL依次从4个对象中取值,
page/request(*)/session(*)/application 这4个对象称为EL的取值范围
*可以明确指定取值范围:page/request/session/applicationScope.对象名.属性名
2)EL在取值时可以进行运算: 算数运算/逻辑运算/关系运算/判空运算
3)EL可以直接获取请求参数: ${param,参数名}/${paramValues.参数名}
4.JSTL是JSP的一套标准标签库(处理数据)
*JSTL标签本质上就是Java
*它在首次访问JSP并翻译成Servlet时生效
*最终它将被翻译成一句Java代码,即XXXTag.doTag()
5.JSTL核心标签
1)<c:if test="EL表达式">执行内容</c:if>
2)<c:choose>
<c:when test="EL表达式">执行内容</c:when>
<c:otherwise>执行内容</c:otherwise>
</c:choose>
3)<c:forEach items="EL表达式" var="循环结果对象名" ></c:forEach>
varStatus用来声明循环状态,forEach在做循环时,会自动创建一个状态对象,来记录循环相关的状态数据,如循环次数
varStatus就是用来给这个对象命名的,以便于引用它
6.自定义JSTL标签
1)编写Java类,继承SimpleTagsupport类
2)在创建的Java类中重写doTag方法
3)创建标签说明文件(xxx.tld),并在<tag></tag>标签中配置
*<description></description>描述自定义的标签
*<name>自定义标签名</name>
*<tag-class>创建的Java类的路径(包名.类名)</tag-class>
*<body-content>empty/JSP</body-content> 用来声明双标签的内容类型
*<required>false</required> 设置该属性是否必须传入值
*<rtexprvalue>true</rtexprvalue> 设置该属性是否可以用EL表达式传值
1.一个JavaBean的成员属性称为:对象属性
该类的get,set方法称为:Bean属性
2.JSP中taglib指令
<%@taglib uri="JSP标签的命名空间",prefix="命名空间的前缀"%>
转发
1.转发和重定向都是用来解决Web组件之间的跳转问题
Web组件:处理请求的组件,即Servlet和JSP
2.两个Web组件如果有依赖关系,则用转发
两个Web组件如果没有依赖关系,则用重定向
3.转发的实现
1)绑定数据到request对象
request.setAttribute("数据的key即绑定名",要绑定的数据);
读取绑定值:request.getAttribute("绑定名");
2)获得转发器
RequestDispatcher rd=request.getRequestDispatcher("要转发的地址")
3)转发
rd.forward(req,res);
通常2,3步合在一起写
4.转发的特征:
1)转发过程是一个请求
2)浏览器地址不变
3)两个组件共用一个request,所以它们可以通过request共享数据
4)不能转发到外部资源,只可局限在内部类
5.重定向特征:
1)重定向过程是2个请求
2)浏览器地址会发生改变
3)两个组件分别使用两个request,所以不能通过request共享数据
4)可以重定向到外部资源
6.使用时机
1)一般查询时会使用转发
2)一般增加,修改,删除后重定向到查询
EL表达式,JSTL标签
1.EL表达式是一套简单的计算规则,用于给JSP标签的属性赋值,也可直接用来输出,
其也可脱离标签单独使用
2.EL表达式作用:(取数据、输出数据)
1)访问Bean的属性(获取get,set方法)
*方式一:${对象名.属性名}
*方式二:${对象名["属性名"]}
*取值范围:默认情况下,EL依次从4个对象中取值,
page/request(*)/session(*)/application 这4个对象称为EL的取值范围
*可以明确指定取值范围:page/request/session/applicationScope.对象名.属性名
2)EL在取值时可以进行运算: 算数运算/逻辑运算/关系运算/判空运算
3)EL可以直接获取请求参数: ${param,参数名}/${paramValues.参数名}
4.JSTL是JSP的一套标准标签库(处理数据)
*JSTL标签本质上就是Java
*它在首次访问JSP并翻译成Servlet时生效
*最终它将被翻译成一句Java代码,即XXXTag.doTag()
5.JSTL核心标签
1)<c:if test="EL表达式">执行内容</c:if>
2)<c:choose>
<c:when test="EL表达式">执行内容</c:when>
<c:otherwise>执行内容</c:otherwise>
</c:choose>
3)<c:forEach items="EL表达式" var="循环结果对象名" ></c:forEach>
varStatus用来声明循环状态,forEach在做循环时,会自动创建一个状态对象,来记录循环相关的状态数据,如循环次数
varStatus就是用来给这个对象命名的,以便于引用它
6.自定义JSTL标签
1)编写Java类,继承SimpleTagsupport类
2)在创建的Java类中重写doTag方法
3)创建标签说明文件(xxx.tld),并在<tag></tag>标签中配置
*<description></description>描述自定义的标签
*<name>自定义标签名</name>
*<tag-class>创建的Java类的路径(包名.类名)</tag-class>
*<body-content>empty/JSP</body-content> 用来声明双标签的内容类型
*<required>false</required> 设置该属性是否必须传入值
*<rtexprvalue>true</rtexprvalue> 设置该属性是否可以用EL表达式传值