一般处理程序之Transfer和Redirect的区别

1.首先需要知道Transfer和Redirect都是想要跳转到另外一个处理程序,或页面的操作。

2.context.Server.Transfer为服务器直接跳转,浏览器和服务器只交互一次,地址栏URL不变。

注意:一般处理程序中

                                 第一个ashx继承子IHttpHandler

                                 跳转到的第二个ashx需继承自System.Web.UI.Page

           context.Server.Transfer操作,可以使用context.Items["yy"]=yang;来传递额外的临时数据。

           context.Server.Transfer操作,由于两次操作处于同一个请求中,所以,上下文对象context是同一个对象,第一个    

           context的数据,在第二个ashx中都可以得到

话不多说上图:

一般处理程序之Transfer和Redirect的区别

一般处理程序之Transfer和Redirect的区别

3.context.Response.Redirect为服务器告诉浏览器去再次请求服务器,浏览器和服务器交互两次,地址栏URL改变。

注意:context.Response.Redirect 由于两次操作处于不同的请求中,所以,第一次和第二次没有任何数据的关联,想要拿到第一次请求中的数据,比如用户名密码,就需要通过Session或者Cookie进行数据传输