页面跳转两种方式
2015-06-12 10:18
239 查看
在界面显示过程用,一般都是通过用户提交页面请求到Servlet,在通过Servlet处理后跳转到相应的界面,进行数据的显示。一般页面跳转有两种方式,分别是重定向(response.sendRedirect)和转发(request.getRequestDispatcher)。下面分别来看这两种方式是如何进行实现的(以下代码是在Servlet中进行页面跳转操作的):
1.重定向(response.sendRedirect)方式
//jsp接收servlet参数
2.转发(request.getRequestDispatcher)方式
//jsp接收servlet参数
3.重定向和转发的主要区别:(是否共享request)
重定向页面:由于浏览器所显示的页面地址为新的URL,所以原页面的request变量就会失效,request中的数据也无法传递到新的页面,造成不能共享request。如果要使用重定向方式,需要在其URL地址后面跟上要传递的参数。
转发页面:转发页面时由于使用的是同一个URL地址,所以可以将一些参数直接设置到request的属性中,其可以根据URL地址传递到前台界面。使得request共享使用。
1.重定向(response.sendRedirect)方式
ItemManager itemManager=new ItemManagerImpl(); try{ itemManager.addItem(item); }catch(ApplicationException e){ String error_message="添加物料失败,物料代码"; } //重定向到查询页面 response.sendRedirect(request.getContextPath()+"/basedata/item_maint.jsp?errorMessage="+URLEncoder.encode(errorMessage,"GB18030"));
//jsp接收servlet参数
<font color="red"><%=request.getParameter("error_message")==null? "": request.getParameter("error_message")%></font>
2.转发(request.getRequestDispatcher)方式
ItemManager itemManager=new ItemManagerImpl(); try{ itemManager.addItem(item); }catch(ApplicationException e){ //将参数设置到request的属性中 request.setAttribute("error_message", "添加物料失败,物料代码"); } //转发到jsp页面 request.getRequestDispatcher("/basedata/item_maint.jsp").forward(request, response);
//jsp接收servlet参数
<font color="red"><%=request.getAttribute("error_message") %></font>
3.重定向和转发的主要区别:(是否共享request)
重定向页面:由于浏览器所显示的页面地址为新的URL,所以原页面的request变量就会失效,request中的数据也无法传递到新的页面,造成不能共享request。如果要使用重定向方式,需要在其URL地址后面跟上要传递的参数。
转发页面:转发页面时由于使用的是同一个URL地址,所以可以将一些参数直接设置到request的属性中,其可以根据URL地址传递到前台界面。使得request共享使用。
相关文章推荐
- 上班的第五百零五天
- 防止表单重复提交
- Spring AOP 实现原理
- 【Android】永不消失的Toast
- 出现set_locale() failed (5): Input/output error的解决方法
- 那些在学习iOS开发前就应该知道的事(part 2)
- SharePoint 2013 开发——开发并部署第一个APP
- jQuery $(document).ready()
- Java判断是否为闰年的方法示例
- ECMAScript6新增值比较函数Object.is
- 更换 centos6 的内核为 oracle uek 内核
- 怎么练出肌肉
- C#设置页面单位和缩放的方法
- 在ubuntu14.04上安装轻量级的Budgie桌面的方法
- java 常见问题(1)-String/StringBuffer/StringBuilder
- 日经社説 20150612 大胆な成長戦略と歳出削減から逃げるな
- It appears as though you do not have permission to view information for any of the hosts you request
- Docker学习
- oracle数据库访问postgre数据库(使用dblink)
- iOS 拨打电话功能