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

  步骤:

    通过request对象获取请求发生器RequestDispather  getRequestDispather(String path)

    使用RequestDispatcher对象来进行转发:forward(ServletRequest request,ServletResponse response)

  特点:

    浏览器地址栏路径不发生变化

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

  

@WebServlet("/requestDemo3")
public class requestDemo3 extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("deee....访问了");
/*
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/requestDemo4");
        requestDispatcher.forward(req,resp);
*/

        //req.getRequestDispatcher("/requestDemo4").forward(req,resp);
        req.getRequestDispatcher("http://www.itcat.com").forward(req,resp);

    }


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


}

 

 

 

 

 

 

 

 

 

 

 

 

 

Request_请求共享数据

域对象:一个作用范围的对象可以用在,可以再范围呢共享数据  

request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据方法︰

1. void setAttribute(string name,object obj):存储数据

2. object getAttitude(string name):通过键获取

3. void removeAttribute(string name):通过键移除键值对

 

package com.itheima.server;

import javax.servlet.RequestDispatcher;
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("/requestDemo3")
public class requestDemo3 extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("deee....访问了");
/*
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/requestDemo4");
        requestDispatcher.forward(req,resp);
*/
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/requestDemo4");

        requestDispatcher.forward(req,resp);

        req.setAttribute("msg","hello");



        //req.getRequestDispatcher("/requestDemo4").forward(req,resp);


    }


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


}

 

posted on 2022-08-09 10:29  淤泥不染  阅读(63)  评论(0)    收藏  举报