1.请求转发与响应重定向的概念
·转发
- 是服务器端的行为
- 发送了一次请求
- 网址不会发生变化
- 请求的数据不会丢失
- 一般情况下在进行查询操作时使用转发
- 方法:
request.getRequestDispatcher("/reception/List.jsp").forward(request, response);
·重定向
- 是客户端的行为
- 发送了两次请求
- 网址会发生变化
- 请求的数据会丢失
- 一般情况下在进行增删改操作时使用重定向
- 方法:
response.sendRedirect("地址");
2.应用
**前言:一开始我对转发跟重定向的理解很“偏”,理解的并不好,我自己也做练习项目,那我的华为项目来说吧,有很多地方很不完善,也想拿出来跟前辈分享一下,给我提点意见。有错误的地方还望指正。
GitHub:https://github.com/RickUniverse/HuaWei–注:代码在Linux上运行可能会出错 **
·转发
- 既然是查询专用,那就从首页的商品搜索栏开始
点击“荣”
首页
2.这里是通过表单提交,搜索页面的这部分代码跟首页面的是一样的,通过EL表达式接收参数“${param.commocityName}”,首页并不需要,所以没有写
jsp页面代码
3.然后就会执行这行转发的代码
servlet代码
- 因为使用的是转发,请求的数据并不会丢失,所以在搜索页面就可以使用EL表达式接收到 “荣”。
搜索页面
5.配置只要出现了,便一定有这个配置的商品,价格,配置和分页都是使用ajax异步完成的,并没有使用转发,这里是可以使用转发的,不过会刷新页面。
搜索页面
·重定向
这里提供的是我做的华为的后台,除了后台是找网上的模板,前台所有的代码都是自己一行一行码的。
- 直接增加一个商品
添加商品页面
2. 这里采用的也是表单提交
添加商品页面的代码
3.因为是添加操作,请求的参数执行添加之后便不需要了,所以使用重定向,”path“是项目路径
4.输入新添加的商品名“超级无敌荣耀”,点击查询按钮我们发现添加成功了!
PS:这个练习项目还有很多功能,感兴趣的话开头有提供链接地址。
另外希望前辈提些意见!
END