页面跳转两种方式

     在界面显示过程用,一般都是通过用户提交页面请求到Servlet,在通过Servlet处理后跳转到相应的界面,进行数据的显示。一般页面跳转有两种方式,分别是重定向(response.sendRedirect)和转发( request.getRequestDispatcher )。下面分别来看这两种方式是如何进行实现的(以下代码是在Servlet中进行页面跳转操作的):
    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共享使用。
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值