Servlet 请求的转发

请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。

在Servlet1处:

1.获取请求的参数:
String username = request.getParameter("username");

2.*request.setAttribute().保存数据。在其他Servlet也能看到。

* 请求转发必须要以斜杠打头,/ 斜杠表示地址为:http://ip:port/工程名/ , 映射到 IDEA 代码的 web 目录。

3.转发给Servlet2:

获取路径:

*RequestDispatcher requestDispatcher = request.getRequestDispatcher("/Servlet2");

发送请求:

*requestDispatcher.forward(request,response);

在Servlet2处:

1.获取请求的参数:
String username = request.getParameter("username");
2. 查看 Servlet1处是否校验:
Object key1 = request.getAttribute("key1");
3.再处理自己的业务。

Servlet1

@Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取请求的参数(办事的材料)查看
        String username = request.getParameter("username");
        System.out.println("在 Servlet1(柜台 1)中查看参数(材料):" + username);

        // 域数据
        // 在1处,给材料 盖一个章,并传递到 Servlet2(柜台 2)去查看
        //setAttribute在此处保存,在其它Servlet也能看到。
        request.setAttribute("key1","柜台 1 的章");


        // 问路:Servlet2(柜台 2)怎么走
/**
 * 请求转发必须要以斜杠打头,/ 斜杠表示地址为:http://ip:port/工程名/ , 映射到 IDEA 代码的 web 目录
 <br/>
 *
 */
        RequestDispatcher requestDispatcher = request.getRequestDispatcher("/Servlet2");
        //可以转发到WEB-INF目录下。
        //不能访问工程以外的资源
        // RequestDispatcher requestDispatcher = req.getRequestDispatcher("http://www.baidu.com");
        // 走向 Sevlet2(柜台 2)
        requestDispatcher.forward(request,response);
    }

Servlet2

@Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取请求的参数(办事的材料)查看
        String username = request.getParameter("username");
        System.out.println("在 Servlet2(柜台 2)中查看参数(材料):" + username);
        // 查看 柜台 1 是否有盖章
        Object key1 = request.getAttribute("key1");
        System.out.println("柜台 1 是否有章:" + key1);
        // 处理自己的业务
        System.out.println("Servlet2 处理自己的业务 ");
    }

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值