Request 请求转发
【摘要】 Request 请求转发请求转发是发生在服务器内部的一种资源跳转。(1) 浏览器发送请求给服务器,服务器中对应的资源A接收到请求(2)资源A处理完请求后将请求发给资源B(3) 资源B处理完后将结果响应给浏览器(4) 请求从资源A到资源B的过程就叫请求转发资源转发的操作就是我们具体在Servlet代码类中进行操作的。req.getRequestDispatcher(“资源B路径”).forw...
Request 请求转发
请求转发是发生在服务器内部的一种资源跳转。
(1) 浏览器发送请求给服务器,服务器中对应的资源A接收到请求
(2)资源A处理完请求后将请求发给资源B
(3) 资源B处理完后将结果响应给浏览器
(4) 请求从资源A到资源B的过程就叫请求转发
资源转发的操作就是我们具体在Servlet代码类中进行操作的。
req.getRequestDispatcher(“资源B路径”).forward(req,resp);
我们先创建一个类
package com.itheima.web.request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
/**
* 请求转发
*/
@WebServlet("/req5")
public class RequestDemo5 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("demo5...");
System.out.println(request);
//存储数据
request.setAttribute("msg","hello");
//请求转发
request.getRequestDispatcher("/req6").forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
然后我们创建一个目标转发类
package com.itheima.web.request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 请求转发
*/
@WebServlet("/req6")
public class RequestDemo6 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("demo6...");
System.out.println(request);
//获取数据
Object msg = request.getAttribute("msg");
System.out.println(msg);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
启动!
先定位到RequestDemo5。
然后看控制台输出
这样的请求转发的特点就是主要发生在服务器内部,浏览器地址栏路径是不会的。这样还不能转发到其他的服务器。这是一个很大的限制。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)