请求的转发
1、什么是请求的转发?
请求转发是指:服务器收到请求,将请求从服务器中转发到另一个服务器
2、请求转发特点
服务器地址栏没有变化
一次请求
共享Request域数据
可以转发到WEB-INF目录
3、请求转发用到的方法
requestDispatcher.forward()
.
这个方法将请求从一个 Servlet or JSP目标资源上转发到服务器上的另一个资源(servlet、JSP 文件或 HTML 文件,这些资源必须是当前Web上下文中的)让其它的资源去生成响应数据。
相关代码:
//forwardServlet01.java
package servlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class forwardServlet01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
System.out.println("在Servlet01服务器查看到的username为:" + username);
// 给参数一个标记
req.setAttribute("key","Servlet01的标记");
// 将参数转发,必须要以斜杠打头
RequestDispatcher requestDispatcher = req.getRequestDispatcher("/forwardServlet02");
// 走向servlet02
// requestDispatcher.forward这个方法将请求从一个 Servlet or JSP目标资源上转发到服务器上的另一个资源(servlet、JSP 文件或 HTML 文件,这些资源必须是当前Web上下文中的)让其它的资源去生成响应数据。
requestDispatcher.forward(req,resp);
}
}
//forwardServlet02.java
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class forwardServlet02 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
System.out.println("凑够Servlet01服务器传送过来的的username为:" + username);
// 查看是否有标记
Object key = req.getAttribute("key");
System.out.println("查看Servlet01的标记:" + key);
// 处理自己的数据
System.out.println("接收成功,可以开始处理自己的数据了");
}
}