日期:2014-05-17  浏览次数:20773 次

请教大家:Servlet中的forward问题。
我有两个Servlet文件:req和rep; 在req中,用 request.getRequestDispatcher("rep").forward(request, response),跳转到了rep; 但是在rep中无法取出request中的数据,取出的变量都是null。
在req中,代码如下:
Java code
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");

        request.setAttribute("aa","dp");
        request.getRequestDispatcher("rep").forward(request, response);

        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }


在req中,代码如下:
Java code
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");

        out.println("跳转到RepServlet");        
        String ss = (String) request.getAttribute("aa");
        System.out.println(ss);
        if (ss == null) {   //一直执行这一句
            out.println("跳转不能从请求获得数据");
        }else {
            out.println(ss);
        }
        
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }


------解决方案--------------------
你把web.xml中配置的rep mapping-url中的路径拷过去 注意最前面的 “/”不用
------解决方案--------------------
探讨

你把web.xml中配置的rep mapping-url中的路径拷过去 注意最前面的 “/”不用

------解决方案--------------------
楼主的代码没有问题,我已经测试过了,可以实现。