Summary of knowledge in the learning process.
2017, Sep 12
Summary of knowledge in the learning process.,servlet and jsp.
errorPage
可能发生错误的Jsp页面<%@ page%>添加以下属性
errorPage="error.jsp"
error.jsp页面<%@ page%>添加以下属性
isErrorPage="true"
页面跳转
可以用两种方法实现页面的转发,分别是forward和redirect
- forward是服务器内部转发,而redirect是通过客户端进行转发,效率要比sendredrict高
- 如果用forward进行转发的话,客户端的url地址不会改变,但是如果用redirect的话,则url地址会改变
- 如果用forward进行转发,转发页面和被转发页面处于一个request请求内,而redirect不是。
include 指令
<%@include file="include1.jsp" %>
include指令包含,静态包含特点:
- 先包含后处理,生成一个servlet类.
- 即当前jsp页面和插入的文件合并成一个新的jsp文件,然后JSP引擎再将这个新的JSP页面转译成java文件
- 只生成一个class文件
- 不能传参数
- 同一个request对象
- 包含文件定义变量i,被包含文件定义相同变量i时,报错 原因:先包含后处理,定义变量重复
- 包含页面和被包含页面访问的是同一个request内嵌对象
include 动作
<jsp:include page="include2.jsp?uname=zhangsan&password=123456">
<jsp:param name="age" value="20" />
</jsp:include>
include动作包含,动态包含特点:
- 先处理后包含,生成多个servlet类.
- 即能自动区分包含的文件是静态文件还是动态文件.
- 执行时,如果为静态文件,直接将资源包含处理,与静态包含相同.
- 如果为动态文件,则选各自处理资源,之后将处理后的结果包含在一起.
- 生成多个class文件
- 能传参数
- jsp include动作可以传参 被包含的页面是JSP页面,自动进行处理
- 不同一个request对象,可以取得包含它的页面的参数,并添加了自己的参数
- 包含文件定义变量i,被包含文件定义相同变量i时,可以正常显示
- jsp include动作可以传参 被包含的页面是JSP页面,自动进行处理
- jsp include动作可以传参 被包含的页面是其他非动态页面,则只是将内容包含进来(txt)
page指令
- 一个page指令设置多个属性值 import多个值时,用逗号分隔
- 只有import属性可以设置多个值,其他属性只能指定一个值