Jsp和Servlet之间的数据共享(数据传递和数据调用)

来源:互联网 发布:淘宝店铺一键复制 编辑:程序博客网 时间:2024/05/30 02:25

原文:http://blog.csdn.net/love_ubuntu/article/details/6640650


(1)jsp(页面)将数据传递到servlet
最常用的方式:利用表单参数或url超链接参数实现数据传递(以前曾经提到过)。

(2)servlet将数据传递到jsp(页面)
从servlet调用jsp,存在两种调用方式:
转发和重定向(上次讲了这两种方式如何实现及具体语法),根据不同的调用(转发和重定向)方式,数据传递方式也有所不同。
(3)利用重定向实现servlet调用jsp
在Jsp文件上,需要些java代码,必须把java代码放在程序段上。如果有变量或方法的返回值,需要在指定的位置进行显示,利用表达式进行即可。
A:利用Url超链接参数实现Jsp页面数据传递到Servlet。
在重定向的Jsp页面上,添加超链接参数信息。
弊端:只限于传输简单和少量的信息(4KB),同时不能用于传递集合信息。

B:利用Session实现Jsp页面信息传递到Servlet中
Session称为会话,是实现在不同web组件(例如:Jsp、Servlet)之间进行数据共享的工作机制。代表:用户与应用程序的一组连接。
第一步:获得session,Session不用new出来。例如:Session["user"]=某个值或null即可。
第二步:将要传递的数据(可以是一个字符串,一个值也可以是一个对象或集合)作为属性添加到session中。
session.setAttribute("属性名",属性的值)
//注意语法,及理解是作为属性添加到Session当中的。
//设置属性的值,有Key(属性名),有Value(属性的值)。
//注意:属性的值,必须是Object对象型
第三步:在Servlet中从Session中根据属性的属性名取出属性的值
根据属性的名称获得属性的值:Object value=session.getAttribute("属性名");
//不仅限与在Servlet中,所有Java程序中都可以用这样的方式获得属性的值。

(4)利用转发实现Servlet调用jsp

A:利用url超链接参数实现数据传递
B:利用request的属性实现数据传递
补:
重定向:response.sendRedirect("重定向的页面");
转发:request.getRequestDispatcher("Jsp页面").forward(request,response);//forward里面参数一定。
推荐:
当利用重定向实现页面转向时,建议使用session进行数据传递
当利用转发实现页面转向,建议使用request属性进行数据传递