• 请求的转发


    请求的转发

    什么是请求的转发?

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

    下面是一个示例,带参数访问servlet1,servlet1会跳转到servlet2.

    servlet1

    package LWB;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class Servlet1 extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String username=req.getParameter("username");
            System.out.println("在Servlet1中查看参数"+username);
            req.setAttribute("key1","柜台1的章");
            //请求转发必须要以斜杠打头,斜杠表示地址为:http://ip:port/工程名/,映射到IDEA代码的web目录
            RequestDispatcher requestDispatcher=req.getRequestDispatcher("/servlet2");
            requestDispatcher.forward(req,resp);
    
        }
    }
    
    

    servlet2

    package LWB;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class Servlet2 extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String username=req.getParameter("username");
            System.out.println("在Servlet2中查看参数"+username);
            Object key1=req.getAttribute("key1");
            System.out.println("柜台1是否有章:"+key1);
            //处理自己的业务
            System.out.println("Servlet2处理自己的业务");
        }
    }
    
    

    请求转发的特点:

    1、浏览器地址栏没有变化

    2、请求转发是一次请求

    3、他们共享Request域中的数据

    4、可以转发到WEB-INF目录下,因为一般情况下,WEB-INF目录是没有办法直接进行访问的,但是可以通过请求转发跳转到WEB-INF目录中。

    5、不能访问工程以外的资源

  • 相关阅读:
    ReactNative手势解锁(react-native-ok-gesture-password)
    Android通过DeepLink方式跳转其他App传递参数
    Android中注解的使用
    Windows平台下Flutter安装,配置,初运行。
    Android中MD5加密
    Android中WebView使用全解
    关于windows系统服务的操作
    java:String类型转换
    webservice服务器部署
    webservice生成客户端
  • 原文地址:https://www.cnblogs.com/fate-/p/14791936.html
Copyright © 2020-2023  润新知