Servlet中给request赋值一个对象,在jsp怎么取出?
Servlet中
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
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)。
楼主多去看看请求转发与重定向的区别
[其他解释]
楼主是不是要遇到异常跳到自己定义的页面呢?
跳转使用转发、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");
}[其他解释]
不是应该这样吗??
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{
request.setAttribute("e", "aaa");
System.out.println("error:"+e.getMessage());
response.sendRedirect("error.jsp");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
我也是新手,, 不知道说的对不对。。
[其他解释]
没有跑出异常,怎么会去执行这一段嗯?应该在try里面写三!
[其他解释]
+++
[其他解释]
正解。话说楼主连try catch 都没搞明白啊 try里面是你要尝试执行的代码。catch是当有异常的时候抛出,里面可以写些异常提醒之类的代码。
[其他解释]
对头
[其他解释]
确实是这么回事,正确答案+1
[其他解释]
对,但是我是在获取的异常里面给request添加值,所以我把异常外的代码块里面的内容发帖时给删了。
[其他解释]
我晕, 这里我还学过的,
而且平时代码也是这么写的, 这帖子居然没注意到。
还是手太生了。。 要慢慢学啊。