Servlet类中的请求转发的介绍

一、我们要明白,什么叫做请求转发?

顾名思义,当浏览器向服务器发送请求后,一个servlet接收浏览器发送的请求,这个servlet将该请求有发送到服务器中的其他servlet或其他文件中。
Servlet类中的请求转发的介绍

二、在servlet中的请求转发的方法是

request.getRequsetDispatcher("/请求转发的路径").forword(requset,response)
这里我要解释一下
request 和response都是 doGet() 和doPost() 中的参数,req和resp中的值在整个工程中是被共享的
Servlet类中的请求转发的介绍

三、在这里我主要是想要介绍一下上述的“/请求转发路径”

  • 请求转发必须以**“/”斜杠打头**,“/”表示“http://ip:port/工程路径/” ,映射到IDEA中的web目录
  • 可以是我们写的java程序(servlet),在src下的servlet直接写其别名即可,这里我还要解释一下,为什么可以直接写别名,如果你是通过web.xml文件配置的servlet,那么你可以记得我们是配置了servlet的全类名路径的,也就是说servlet的别名其实对应的是servlet的全类名路径。全类名路径路径正好是在工程路径下面的。用注解的方式我就不是说了
  • 可以是WEB-INF目录下的资源,因为上述 / 是映射到web目录的,WEB-INF目录刚好在web目录下

四、请求转发的特点:

  • 浏览器地址栏没有变化
  • 属于一次请求
  • Request域中的数据是被整个web工程共享的(因为是一次请求)
  • 可以转发到WEB-INF目录下的资源
  • 不可以访问工程以外的资源