zoukankan      html  css  js  c++  java
  • servlet(jsp)中的重定向和转发

    servlet(jsp)中的重定向和转发

    由一个servlet(jsp)从内部转向还有一个servlet(jsp)有两种方式:转发和重定向。

    转发:是由一个web组件(servlet)将未完毕的处理交给下一个web组件处理,转发的组件会共享request对象和response对象,从而实    现数据的共享。

    能够使用下面方式进行转发:request.getRequestDispatcher("新资源").forward(req,resp);  

    注意:

    1.转发之前不能运行response.getWriter().close()或者flush(),由于一次浏览器请求仅仅能做出一次响应,运行这个,会直接响应给浏览器,也就不会做后面的转发或其它动作。

    2.转发之前,假设response对象中有缓存,转发之后会清空,也就是说你在ServletA页面种有运行输出到浏览器的语句,可是你转发ServletB,你仅仅会看到servletB在浏览器中的输出。

    --转发的特点:

    1)转发的资源路径必须在web应用范围内

    2)转发携带数据

    3)地址栏地址没有变化

    重定向:一个web组件的功能运行完成,须要立即运行下一个web组件,这时可使用重定向.

    原理:

    server向浏览器发送一个状态码302及Location.浏览器收到后,马上向Location所指向的地址发送请求.
    response.sendRedirect("资源路径");

    等价于以下两句话:

    response.setStatus(302);

    response.setHeader("Location""/servletPro/Servlet2");

    重定向特点:

    1)能訪问随意资源
    resp.sendRedirect("http://www.baidu.com");
    2)重定向之后地址栏有变化
    3)重定向不会携带数据

    注意:

    1)重定向之前,不能运行out.close()或out.flush();
    2)重定向之前,假设response对象中有缓存,转发之后会清空.






  • 相关阅读:
    如何在SQLite中创建自增字段?
    Windows XP平台下编译boost[1.47及以上]
    智能指针的向下转型
    采用Boost::filesystem操作文件
    CodeSmith访问数据库
    std::string的一些操作
    PDF加入内嵌字体
    悟空和唐僧的对话
    收获和教训的一天配置ds1401
    vxworks的一个changlog
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4019048.html
Copyright © 2011-2022 走看看