转载:http://blog.sina.com.cn/s/blog_531101430100lyef.html
1、web组件之间的关系
(1)web组件
所谓的web组件,指jsp文件以及servlet。
(2)关系
jsp和servlet之间的相互调用关系。
(3)由jsp调用servlet
主要通过两种方式:form表单,url超链接
(4)由servlet调用jsp
转发
重定向
(5)web组件的关系
总共有三种:
转发
重定向
包含
(6)重定向
A:意义
整个浏览器的地址信息重新指向到一个新的页面。
B:效果
自动调用一个新页面的地址
显示的内容成了新页面的内容
地址栏显示的地址也成了新页面的地址
C:实现
response.sendRedirect("新页面的地址")
(7)转发
A:意义
浏览器地址栏仍就保持原始页面地址信息,但是显示的内容显示新页面的内容。
B:效果
自动调用新页面
显示内容成为新也页面的内容
地址栏还是原来的页面地址
C:实现
借助于请求分派器对象实现。
2、web组件之间的数据共享
(1)jsp传递数据到servlet
A:表单
B:url超链接传参
C:利用session内置对象
(2)由servlet传递数据到Jsp
A:利用url超链接传递参数
B:利用session内置对象进行传递
C:利用request内置对象进行数据传递
总结:jsp、servlet之间进行数据共享时,可以汇总成下面两种操作:
第一种:当不同组件之间具有明确的请求传递关系(表单或url传递参数),利用request的参数捕获的方式实现传递和捕获。
第二种:当组件之间没有明确的请求传递关系时,借助于request或session的属性进行数据传递。
当进行转发关系时,利用request的属性进行传值。
当进行重定向关系时,利用session进行传值。
(3)属性操作
A:属性是代表对象基本特征的信息,是名称与值的成对的集合。
特点:属性的值是对象型。
B:操作步骤
第一步:添加属性
setAttribute(名称,值)
第二步:接收(提取)属性
知道属性名称:根据属性名称获得属性的值getAttribute(属性名称)---->Object
不知道属性名称:先获得属性名称组成的枚举,遍历枚举获得具体的名称,再根据名称获得值
request的属性信息,只存在于具有request传递关系的两个web组件之间。当接收页面运行完成后,request的信息自动清除。
session的属性信息,默认存在30分钟。与页面,与调用关系无关。只要是访问的一个应用程序的不同页面,只要在一个浏览器中,session的属性就可以共享。
第三步:清除属性
removeAttribute(属性名称)
(4)session的操作
A:获得session对象
在jsp页面上,session默认已经存在了
在servlet中,需要先获得session对象
B:向session对象添加属性
setAttribute(名称,值)
C:提取属性
getAttribute(名称)--->Object
当属性存在时,获得具体的值,属性不存在时,获得null空对象。
注意:session中的属性,默认情况下,会保留30分钟。
D:清除属性