Summary of knowledge in the learning process.

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

  1. forward是服务器内部转发,而redirect是通过客户端进行转发,效率要比sendredrict高
  2. 如果用forward进行转发的话,客户端的url地址不会改变,但是如果用redirect的话,则url地址会改变
  3. 如果用forward进行转发,转发页面和被转发页面处于一个request请求内,而redirect不是。

include 指令

<%@include file="include1.jsp" %>  

include指令包含,静态包含特点:

  1. 先包含后处理,生成一个servlet类.
    • 即当前jsp页面和插入的文件合并成一个新的jsp文件,然后JSP引擎再将这个新的JSP页面转译成java文件
  2. 只生成一个class文件
  3. 不能传参数
  4. 同一个request对象
  5. 包含文件定义变量i,被包含文件定义相同变量i时,报错 原因:先包含后处理,定义变量重复
  6. 包含页面和被包含页面访问的是同一个request内嵌对象

include 动作

<jsp:include page="include2.jsp?uname=zhangsan&password=123456">
		<jsp:param name="age" value="20" />
	</jsp:include>

include动作包含,动态包含特点:

  1. 先处理后包含,生成多个servlet类.
    • 即能自动区分包含的文件是静态文件还是动态文件.
    • 执行时,如果为静态文件,直接将资源包含处理,与静态包含相同.
    • 如果为动态文件,则选各自处理资源,之后将处理后的结果包含在一起.
  2. 生成多个class文件
  3. 能传参数
    • jsp include动作可以传参 被包含的页面是JSP页面,自动进行处理
  4. 不同一个request对象,可以取得包含它的页面的参数,并添加了自己的参数
  5. 包含文件定义变量i,被包含文件定义相同变量i时,可以正常显示
  6. jsp include动作可以传参 被包含的页面是JSP页面,自动进行处理
  7. jsp include动作可以传参 被包含的页面是其他非动态页面,则只是将内容包含进来(txt)

page指令

  1. 一个page指令设置多个属性值 import多个值时,用逗号分隔
  2. 只有import属性可以设置多个值,其他属性只能指定一个值