我有两个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中的路径拷过去 注意最前面的 “/”不用
------解决方案--------------------
------解决方案--------------------
楼主的代码没有问题,我已经测试过了,可以实现。