(t)parameterattribute之间的区别

更新时间:2023-08-03 11:57:45 阅读: 评论:0

(t)Parameter
(t)Attribute
举个例子吧,比如在你的jsp1页面中有一个表单(form),里面有一个inputtype哄人的话textareanameaddress,里面输入了一些信息,然后提交这个页面到jsp2页面
那么,当你使用Parameter( "address ")的时候,获取的就是这个textarea中的字符串。
你的jsp1页面中有一个你自己定义的类,这个类是一个Date类,名字是date,你已经通过request.tAttribute( "myDate ",  date)方法,把它扔到了request域中,这时候,你从jsp1页面跳转到了jsp2页面,在jsp2页面中,你就可以通过 Attribute( "myDate ")的方法,获取这个date对象,注意,你获取的是一个Object对象,必须进行强制转换,即(DateAttribute( "myDate ")才能正确使用这个类
看出区别了么?
get/tParameter是在对你的页面中的表单元素进行操作,获取的是这个表单元素中的值,其类型是字符串
get/tAttribute是对你页面中自己定义的对象进行操作,获取的是一个Object对象,必须进行强制类型转换后才可以进行进一步的操作
(t)parameter 走的是request
(t)attribute 走的是ssion
ssion里面t的是object,所以必须是对象!!
Attribute里面也都放的是对象列表!
ssion的信息是记录在服务器和客户端之间的ssion中,存在于服务器!所以,只要ssion不过去,放在Attrabute里面的信息就会存在,所以不管你跳转到哪个页面都没有关系!!
但是requesttParameters里面的数值,只会伴随着一次跳转请求,当第二次跳转时,如果你不做转发处理,在第二次跳转时就不会存在paramaters里面的信息!!
forwordndRedirect两种方式就是处理请求转发的,parameters的转发!!
实际上这是一个客户端与服务器之间的请求的交互过程!!
就是说你打包一批货物发往沈阳,沈阳作为服务器中心,如果沈阳那面不指定讲货物发送第三地,货物在沈阳就动了!当沈阳向第三个地方,发送内容时,不会带你的那批货物!! 除非你指定从沈阳再发往第三地时,记得带上你从北京发往沈阳的那批货!!
一共是两个请求和接收的过程!!
客户端--》服务器 --》客户端!!
 
 
1 Forward
这种方式是在服务器端作的重定向。服务器往client发送数据的过程是这样的:服务器在向客户端发送数据之前,是先将数据输出到缓冲区,然后将缓冲区中数据发送给client端。什么时候将缓冲区里的数据发送给client 端呢?(1)当对来自client宪法基本知识request处理完,并把所有数据输出到缓冲区,(2)当缓冲区满,(3)在程序中调用缓冲区的输出方法 out.flush()respon.flushbuffer()web container才将缓冲区中的数据发送给client
这种重定向方式是利用服务器端的缓冲区机制,在把缓冲区的数据发送到客户端之前,原来的数据不发送,将执行转向重定向页面,发送重定向页面的数据,重定向调用页的数据将被清除。如果在<JSP:FORWORD>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么这种重定向方式将不起作用,这一点应该特别注意。
public void doPost(HttpServletRequest request,HttpServletRespon respon)  throws ServletException,IOException
万事开头难{
      respon.tContentType("textml; chart=UTF-8");
      ServletContext sc = getServletContext();
      RequestDispatcher rd = null;
      rd = sc.getRequestDispatcher("/index.jsp");
      rd.forward(request, respon);
}
ndRedirect
这种方式是在客户端作的重定向处理。该方法通过修改HTTP协议的HEADER部分,对浏览
器下达重定向指令的,让浏览器对在location中指定的 URL提出请求,使浏览器显示重定向网页的内容。该方法可以接受绝对的或相对的URLs。如果传递到该方法的参数是一个相对的URL,那么Web container在将它发送到客户端前会把它转换成一个绝对的URLpublic void doPost(HttpServletRequest request,HttpServletRespon respon)  throws ServletException,IOException
{
      respon.tContentType("textml; chart=UTF-8");
      respon.ndRedirect("/index.jsp");
}
其实就是url请求里面放参数,不过,url请求的参数是有长度限制的!
秃鹫图片二、区别.
1 forward重定向是在容器内部实现的同一个那一次我真高兴Web应用程序的重定向,所以forward方法只能重定向到同一个Web应用程序中的一个资源,重定向后浏览器地址栏URL不变,而ndRedirect方法可以重定向到任何URL,因为这种方法是修改http头来实现的,URL信息化教学没什么限制,重定向后浏览器地址栏URL改变。
2forward人是要有一点精神的重定向将原始的天地成语HTTP请求对象(request)从一个rvlet实例传递到另一个实例,而采用ndRedirect方式两者不是同一个application
3、基于第二点,参数的传递方式不一样。forwardform参数跟着传递,所以在第二个实例中可以取得HTTP请求的参数。ndRedirect只能通过链接传递参数,respon.ndRedirect(login.jsp?param1=a)
4 ndRedirect能够处理相对URL,自动把它们转换成绝对URL,如果地址是相对的,没有一个‘/’,那么Web container就认为它是相对于当前的请求URI的。比如,如果为respon.ndRedirect("login.jsp"),则会从当前rvlet URL路径下找login.jsp 10.1.18.8:8081/dms/rvlet/Servlet 重定向的URL: 10.1.18.8:8081/dms/rvlet/login.jsp,如果为respon.ndRedirect("/login.jsp")则会从当前应用径下查找url:10.1.18.8:8081/login.jsp。而forward不能这样处理相对路径。

本文发布于:2023-08-03 11:57:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1106533.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:重定向   缓冲区   请求   沈阳   页面   数据
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图