发表于: 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看成客户端跳转了
四:思考总结
这些问题以前遇到过,印象不深,再次遇到还需要想一下
评论