重定向和请求转发的代码实现 - 02

对请求转发和重定向不了解的可以看这个:
https://blog.csdn.net/qq_40542534/article/details/108519299

重定向实现

通过RedirectSevlet重定向到RedirectSevlet2:

RedirectSevlet

@WebServlet("/RedirectSevlet")
public class RedirectSevlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("dopost");
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet");
        //重定向到RedirectSevlet2  request.getContextPath()获取当前项目路径
        response.sendRedirect(request.getContextPath()+"/RedirectSevlet2");
    }
}

RedirectSevlet2

@WebServlet("/RedirectSevlet2")
public class RedirectSevlet2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("dopost");
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet");
        ServletOutputStream outputStream = response.getOutputStream();
        outputStream.write("RedirectSevlet2我是重定向之后的地址".getBytes());

    }
}

运行结果

在这里插入图片描述
在这里插入图片描述

请求转发实现

通过DispatcherSevlet请求转发到DispatcherSevlet2

DispatcherSevlet

@WebServlet("/DispatcherSevlet")
public class DispatcherSevlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("dopost");
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet");

        request.setAttribute("username","用户名参数123");
        //请求转发 交给DispatcherServlet2处理
        request.getRequestDispatcher("DispatcherServlet2").forward(request,response);

    }
}

DispatcherSevlet2

@WebServlet("/DispatcherSevlet2")
public class DispatcherSevlet2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("dopost");
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet");

        //1、获取参数
        String username = (String) request.getAttribute("username");

        //显示到页面内容
        String showContent = "请求转发到DispatcherSevlet2  \n获取参数为: username : "+username;
        ServletOutputStream outputStream = response.getOutputStream();
        outputStream.write(showContent.getBytes());

    }
}

运行结果

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40542534/article/details/108521565
今日推荐