0
点赞
收藏
分享

微信扫一扫

Ruquest请求转发


Ruquest请求转发

请求转发(forward):一种在服务器内部的资源跳转方式

Ruquest请求转发_java-ee

实现方式:

req.getRequestDispatcher("资源B路径").forward(req,resp);

请求转发资源间共享数据:使用Request对象

void setAttribute(String name,Object o):存储数据到request域中

Object getAttribute(String name):根据key,获取值

void removeAttribute(String name):根据key,删除该键值对

代码示例:

RequestDemo05:

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("/req5")
public class RequestDemo5 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("demo5...");

//存储数据
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);
}
}

Request06:

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...");

//获取数据
Object msg = request.getAttribute("msg");
System.out.println(msg);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}

执行结果:

URL访问req5

Ruquest请求转发_java-ee_02

控制台输出请求转发的数据:

Ruquest请求转发_前端_03

 请求转发特点:

1、浏览器地址栏不发生变化

2、只能转发到当前服务器的内部资源

3、一次请求,可以在转发的资源间使用request共享数据

举报

相关推荐

0 条评论