Servlet类中的请求转发的介绍
一、我们要明白,什么叫做请求转发?
顾名思义,当浏览器向服务器发送请求后,一个servlet接收浏览器发送的请求,这个servlet将该请求有发送到服务器中的其他servlet或其他文件中。
二、在servlet中的请求转发的方法是
request.getRequsetDispatcher("/请求转发的路径").forword(requset,response)
这里我要解释一下
request 和response都是 doGet() 和doPost() 中的参数,req和resp中的值在整个工程中是被共享的
三、在这里我主要是想要介绍一下上述的“/请求转发路径”
- 请求转发必须以**“/”斜杠打头**,“/”表示“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目录下的资源
- 不可以访问工程以外的资源