Request对象传递数据
Request请求转发有一个重要的功能是 数据传递
-
存数据:request.setAttribute(key,value);
- 以键值对形式存储在request作用域中。key为String类型,value为Object类型
-
取数据:request.getAttribute(key);
- 通过String类型的key访问Object类型的value
-
forward表示一次请求,是在服务器内部跳转,可以共享同一次request作用域中的数据
这里通过一个案例来测试使用它
实现效果
1、 设计思路(实现原理)
1) 编写servlet1,并用 setAttribute添加 “username”,值为 “mike”,并用request.getRequestDispatcher跳转到servlet2
2) 编写servlet2,并用 getAttribut获取 "username的值,并打印在页面
案例实现
servlet1
package com.gd.servlet;
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;
/**
* @author LFXIANG
* description TODO
* @title servlet1
* date 2024/3/28 20:11
*/
@WebServlet("/servlet1")
public class servlet1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// req.setAttribute以键值对形式存储在request作用域中。key为String类型,value为Object类型
// 存储一个key为username,value为mike的值在request作用
req.setAttribute("username","mike");
req.getRequestDispatcher("/servlet2").forward(req,resp);
}
}
servlet2
package com.gd.servlet;
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;
/**
* @author LFXIANG
* description TODO
* @title servlet1
* date 2024/3/28 20:11
*/
@WebServlet("/servlet1")
public class servlet1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// req.setAttribute以键值对形式存储在request作用域中。key为String类型,value为Object类型
// 存储一个key为username,value为mike的值在request作用
req.setAttribute("username","mike");
req.getRequestDispatcher("/servlet2").forward(req,resp);
}
}