看了很多朋友对它二者的看法,众说纷纭,个人总结如下,请高人check, 以便彻底掌握区别主要有四
    1. 请求方不同
           redirect: 客户端发起的请求
           forward:  服务端发起的请求
    2. 浏览器地址表现不同
           redirect: 浏览器地址显示被请求的url
          forward:  浏览器地址不显示被请求的url
    3. 参数传递不同
           redirect: 重新开始一个request,原页面的request生命周期结束。
           forward: forward另一个连接的时候。request变量是在其生命周期内的。另一个页面也可以使用,其实质是
                      把目标地址include
    4. 底层运作不同:
           redirect:  发送的请求信息又回送给客户机,让客户机再转发到另一个资源上,需要在服务器和客户机之间增加一次
                        通信   
           forward:   服务器端直接找到目标,并include过来           

解决方案 »

  1.   

    比如在命令行里运行。
    java MyClass
    这个 MyClass里必须有main方法吗? 
    备选答案 A 必须有 
    B 不是必须的。 
     
      

  2.   

    看了一些资料,最初的理解有偏差,纠正如下:
      1. 重定向是HTTP协议定义的功能,要经过两次HTTP通信过程,第一次用于获取资源的实际地址,第二次用之前得到的地址发出请求, 这个过程对浏览器是可见的;
         请求转发是servlet技术本身的特点,转发的过程是在服务器内部进行,对浏览器是不透明的,它认为它所发送的地址实际上得到的就是这些内容; 从HTTP角度看,只有一次通讯过程  2. 重定向只能转向新的资源,功能较单一;  请求转发不但可以转向新的资源,也可将其它资源和本身的生成的内容结合起来,功能很丰富  3. 重定向适用范围广,因为它是HTTP协议定义的,不但可以重定向统一web程序的其它资源,也可以重定向到其它web程序甚至其它网站;  而请求转发是servlet本身的一种机制,通常只在同一web程序内部转发,从而使它的可用范围受到限制。---------------   3. 参数传递不同 
              redirect: 重新开始一个request,原页面的request生命周期结束。 
              forward: forward另一个连接的时候。request变量是在其生命周期内的。另一个页面也可以使用,其实质是把目标地址include , 去掉该句
       4. 底层运作不同: 
              redirect:  发送的请求信息又回送给客户机,让客户机再转发到另一个资源上,需要在服务器和客户机之间增加一次 
                            通信  
              forward:  服务器端直接找到目标,并include过来 这句改为:如果是forward方法,则转交给目标地址处理; 如果是include方法,则把目标地址的内容拿过来