账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Servlet请求转发为什么不会输出源Servlet的写入数据
    41
    0

    孙卫琴《Tomcat与Java Web开发技术详解》(第2版)P149请求转发一节有一个问题不大懂:

    下面是相关代码,实现了CheckServlet将请求转发给OutputServlet。疑惑的地方在,请求转发前后CheckServlet写入的数据都没有发给客户端,这是为什么呢?

    (1)源Servlet:

    public class CheckServlet extends GenericServlet {
    
      public void service(ServletRequest request,ServletResponse response)
        throws ServletException, IOException {
    
        //省略部分代码
        
        request.setAttribute("msg", message);
     
        ServletContext context = getServletContext();
        RequestDispatcher dispatcher =context.getRequestDispatcher("/output");  
     
        PrintWriter out=response.getWriter();
    
        // 转发前源Servlet的output
        out.println("Output from CheckServlet before forwarding request."); 
        System.out.println("Output from CheckServlet before forwarding request.");
        
        dispatcher.forward(request, response);
    
        // 转发后源Servlet的output
        out.println("Output from CheckServlet after forwarding request."); 
        System.out.println("Output from CheckServlet after forwarding request.");
      }
    }

    (2)目标Servlet

    public class OutputServlet extends GenericServlet {
    
      public void service(ServletRequest request,ServletResponse response)
        throws ServletException, IOException {
    
        String message = (String)request.getAttribute("msg");
        PrintWriter out=response.getWriter();
    
        out.println(message); 
        out.close();
      }
    }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 一梦天罗 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部