比如html…
转发的下一个资源不一定是Servlet
关于request对象中两个非常容易混淆的方法
String username = request.getParameter('username');
//获取的是用户在浏览器上提交的数据
Object obj = request.getAttribute('name');
//获取的是请求域中绑定的数据
获取请求转发器对象
两个servlet如何共享数据?
使用Servlet的转发机制
执行Aservlet之后,跳转到Bservlet。
调用请求转发器RequestDispatcher的forward方法
//要转到类time,其是在请求域中拿出绑定的数据
package sza_htmservlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class time extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//从请求域当中取出绑定的数据
Object sysTime = request.getAttribute('sysTime');
//输出到服务器
response.setContentType('text/html');
PrintWriter out = response.getWriter();
out.print(sysTime);
}
}
//是类time_0其绑定了当前的系统时间,绑定了数据到请求域当中
package sza_htmservlet;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
public class time_0 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获得系统当前时间
Date nowtime = new Date();
//将系统当前时间绑定到请求域当中
request.setAttribute('sysTime',nowtime);
//第一步:获取请求转发器对象,这里的/time是xml文件里可以访问类的路径
RequestDispatcher requestDispatcher = request.getRequestDispatcher('/time');
//第二步调用请求转发器RequestDispatcher的forward方法参数为 本类的request和response
//此时便会自动转到/time 所指的类当中并执行doGet语句
requestDispatcher.forward(request,response);
}
}
将数据放到servletContext当中,但是应用域范围太大,占用资源太多,不建议使用
放到request域当中要用时,使用转发机制
文章为作者独立观点,不代表股票交易接口观点