日期:2014-05-19  浏览次数:20881 次

Servlet中给request赋值一个对象,在jsp怎么取出?
Servlet中

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletExceptionIOException {
try{
} catch (Exception e) {
// TODO: handle exception
request.setAttribute("e", "aaa");
System.out.println("error:"+e.getMessage());
response.sendRedirect("error.jsp");
e.printStackTrace();
}
}

给request中添加一个对象e,值为“aaa”;
Jsp中取出
  测试前:
  <%=request.getAttribute("e") %> 
  测试后
结果显示的是:
测试前null测试后。
这是为什么?
迷糊了。
用struts2实现的话是正常的。
------最佳解决方案--------------------
不管楼主做什么都拿不到的。
因为你用的是sendRedirect();重定向。
重定向之后它会重新创建一个request前后页面不是相同的request
所以上一个request的数据就没了。
你要有的话就用request.getRequestDispatcher(request.getServletPath()+"/error.jsp").forward(request,response)。
楼主多去看看请求转发与重定向的区别
------其他解决方案--------------------
引用:
不管楼主做什么都拿不到的。
因为你用的是sendRedirect();重定向。
重定向之后它会重新创建一个request前后页面不是相同的request
所以上一个request的数据就没了。
你要有的话就用request.getRequestDispatcher(request.getServletPath()+"/error.jsp").forward(req……


楼主是不是要遇到异常跳到自己定义的页面呢?

跳转使用转发、4楼说了、

public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
try{
   int i = 1/0;
} catch (Exception e) {
            // TODO: handle exception
            request.setAttribute("e", "aaa");
            System.out.println("error:"+e.getMessage());
            request.getRequestDispatcher(request.getServletPath()+"/error.jsp").forward(request,response);//转发
            //response.sendRedirect("error.jsp");
            e.printStackTrace();
        }
}

------其他解决方案--------------------
第一个 你try catch 先去搞明白
第二 你用的request保存的,而你跳转页面用的重定向,这样在JPS页面取不到之前request的, 你可以用sessin保存 或者 的跳转用request的转发
------其他解决方案--------------------
你这代码什么意思呢 ,try{}里面什么都没有 ,等于说这个servlet什么都不做??跳转也没法进行啊。。。
------其他解决方案--------------------
改成
public void doPost(HttpServletRequestrequest,HttpServletResponseresponse)             throws ServletException, IOException {
request.setAttribute("e", "aaa");             
System.out.println("error:"+e.getMessage());             
response.sendRedirect("error.jsp");             
}

------其他解决方案----------