页面接收Action数据


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,在Action中:(ServletActionContext.getRequest().setAttribute
?????? 注:在配置action转发类型时要为dispatcher,不能为redirect, 因redirect忽略request的参数!
?2, 在页面中:${news.title}
?
forward 与 redirect 区别:

1.从地址栏显示来说
forward 地址栏还是原来的地址.
redirect 地址栏显示的是新的URL

2.从数据共享来说
forward:? 转发页面和转发到的页面可以共享request,session里面的数据.
redirect: 转发页面和转发到的页面不可以共享request里面的数据,但可以共享
session里面的数据.

3.应用
forward 是服务器内部的一种操作,只能在同一个Web应用程序内的资源之间转发
请求.
redirect 是服务器通知客户端,让客户端重新发起请求,不仅可以重定向到当前
应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,
甚至是使用绝对URL重定向到其他站点的资源.

4.从效率来说
forward:高.
redirect:低.

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容
读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从
哪里来的,所以它的地址栏还是原来的地址.

redirect是服务端根据逻辑,发送一个状态码,(不会传request,故其不能共用
request中的数据)告诉浏览器重新去请求那个地址.所以地址栏显示的是新的
URL.所以redirect等于客户端向服务器端发出两次request,同时也接受两次
response。