servlet 之forward和sendRedirect跳转

来源:互联网 发布:软件开发项目售后服务 编辑:程序博客网 时间:2024/05/17 23:03

servlet 之forward和sendRedirect跳转

servlet的跳转分为客户端的跳转和服务器端的跳转。

1.      客户端的跳转

          在servlet中客户端的跳转是通过httpservletresponsesendRedirect()跳转。

          但次跳转只能传递session范围的属性,无法传递request范围的属性。如:request.setAttribute(“info”,”name”);其中,info的跳转后为null

          例如:response.sendRedirect(“login.jsp”);

          客户端的跳转:跳转后地址栏会发生改变,只能接受session属性的范围的内容,request属性范围的内容无法接收到,这是应为request属性范围只有在服务器端跳转中才可以使用。

2.      服务器端的跳转

         在servlet中没有像jsp中的<jsp:forward>指令,所以先要执行服务器端的跳转,就必须依靠RequestDispatcher借口完成,此接口提供了两个方法:

            forward(servletRequestrequest, servletResponse response)include(servletRequestrequest, servletResponse response)。使用RequestDispatcher借口的forward()方法即可完成跳转功能的实现,但是如果想要使用ServletRequest接口提供的publicRequestDispatcher getRequestDispatcher(String path) 的方法进行实例化。

例如:RequestDispatcherrd = request.getRequestDispatcher(‘’login.jsp”);

re.forward(request,response);服务器端跳转后,页面的路径不会发生变化,而且此时可以在跳转后的jsp文件中接受sessionrequest范围的属性。