zoukankan      html  css  js  c++  java
  • 关于Servlet中的转发和重定项

    一:转发

      首先转发属于服务器内部行为,通过浏览器的地址栏是看不到URL变化的。比如说客户端发送一个请求到ServletA,ServletA接收到请求,但是没有能力处理,但是ServletA知道ServletB可以处理,它不想直接告诉浏览器说自己处理不了,于是ServletA就将请求传递给了ServletB代为完成,该行为发生在服务器内部,客户端  看不到变化,当ServletB处理完毕请求后,会响应客户端,该行为相当于A盗用了B的劳动成果。(两个Servlet中使用的request和response是同一个)

     

       req.getRequestDispatcher("/ServletB").forward(req, resp);    //使用request对象
    
      // WEB-INF文件夹中的文件,在外部是没有办法访问的。但是可以直接在服务器内部,通过代码进行访问(如访问/WEB-INF/notice.html):
    
       // req.getRequestDispatcher("/WEB-INF/notice.html").forward(req,resp);

    二:重定向

      重定向不属于服务器内部行为,客户端发送完请求后会清楚的看到浏览器地址栏的变化。比如说客户端发送一个请求到ServletA,ServletA接收到请求,但是没有能力处理,于是它就回复客户端说自己处理不了,在回复的同时告知了客户端说ServletB可以处理,让客户端去找ServletB,因此地址栏会发生变化,由原本的ServletA重新指定到ServletB。

      

       resp.sendRedirect("/ServletB");  //使用response对象
  • 相关阅读:
    Business talking in English
    My strength (C-A-R)
    牛排有几分熟怎么说
    深入理解 Java try-with-resource 语法糖
    什么时候用异常,什么时候用断言?
    Java陷阱之assert关键字
    Java断言绝对不是鸡肋
    Java 条件编译
    Java 语法糖详解
    Java中有哪些语法糖?
  • 原文地址:https://www.cnblogs.com/wooyoohoo/p/9463243.html
Copyright © 2011-2022 走看看