发表于: 2017-06-03 22:54:57

2 1198


【说明】今天详细看了forword 服务器跳转 和 sendredirect 客服端跳转的区别

一:今日完成

看到我的购物系统后台里面的一个跳转逻辑。

拿category 为例子,地址栏输入 admin 会跳转到 index.jsp   然后跳转到 /admin_category_list ,经过BaseServletFilter  过滤,取出 path (categoryservlet)和 method(list)。

接着到basebackservlet 的 service方法(分页信息 + Method反射 +rediect跳转) 然后到categoryservlt的 list 方法,得到attribute 对象 thecs+page。

接着到admin/listCategory.jsp 页面由 header.jsp + navigater.jsp +footer.jsp + adminpage.jsp 组成,然后通过table 取出 显示数据 和 跳转连接,over!

那么疑问来了,什么时候客户端跳转,什么时候服务器跳转呢?

先说一下两者的区别

1.forward 跳转:
a. 服务器端跳转,地址栏不改变;
b. 执行到跳转语句后马上无条件跳转,之后的代码不再执行 (跳转之前一定要释放全部资源);
c.request 设置的属性在跳转后的页面仍可以使用;

2.response 跳转:
a. 客户端跳转, 地址栏改变;
b. 所有代码执行完毕后跳转;
c. 跳转后的页面不能使用上一个页面的 request 属性;
d. 使用地址重写传递参数(response.sendRedirect("URL? 参数名=参数值"))。

那么到底我们在写页面逻辑的时候应该怎样处理呢?


我觉得应当看资源之间的联系,服务器资源包括 servlet 和 jsp ,有的是在修改之后展示,可以直接sendredirect ,有的需要获取request参数,可以forword。

二:明日计划

剩下的页面也看一下

三:疑难问题

今天差点把jsp看成客户端跳转了

四:思考总结

这些问题以前遇到过,印象不深,再次遇到还需要想一下


返回列表 返回列表
评论

    分享到