servlet 中的 sendRedirect和forward实现跳转以及报参数非法异常

 

 在servlet中重定向一个页面,可用forward或者是redirect,但是重定向的语句一定要写在out.close()之前,并且重定向之后除了out.close()语句,不能再有任何其他语句,否则将报参数非法异常。
 //forward实现跳转
        ServletContext sc = getServletContext();
        RequestDispatcher rd = null;
        rd = sc.getRequestDispatcher("/index.jsp"); //定向的页面
        rd.forward(request, response);
 //resposne实现跳转
 response.sendRedirect("/WebRoot/index.jsp");    //此时的路径需要填写
http://localhost:8080之后的所有信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
----------重定向---------------------------------------------------------------------------------- //将工程重定向到我们的腾讯网页 response.sendRedirect("http://www.qq.com"); //重定向的好处:不但可以跳转到本工程的资源 也可以跳转到其它资源 response.sendRedirect("userInfo"); //重定向的跳转方式为get(如果下一个servlet没有get方法 将出现异常) 注意事项:a标签和重定向差不多 通过a标签进行跳转时也是调用doGet()方法 //从地址栏上方进入网页也是调用的servlet的get方法 //在使用doGet()方法时还要做验证 看用户是否已经登录 -----转发--------------------------------------------------------------------------- request.setAttribute("un",userName) String userName=(String)response.getAttribute("un"); //但是由于请求资源传递不是连续的 它一次请求后寿命结束 为了延续它的寿命 在页面跳转时 我们不用重定向 我们使用转发 如下: //获得资源定位 然后将请求转发出去----首先将资源定位到list 然后将当前的request和response转发出去--转发 request.getRequestDispatcher("list").forward(request,response); //参数传递 J2EE1.4以下就是将引用直接拷贝过去 J2EE拷贝的是副本 //如果在doPost方法写转发就会进入对方的doPost() 方法 包含转发的方法是什么方法就进入对方的什么方法 //转发的缺点:只能在本工程内转发 //转发和重定向是都是一瞬间就跳转到了要转发的页面 间的内容基本没有时间显示 解决这个问题的方法如下: 包含转发 request.getRequestDispatcher("login.html").include(request.response); //就是将该页面所包含的所有的网页代码包含到我所要跳转的目的地去

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值