首先你打印一下error的值,看看是否执行了if语句
解决方案 »
- 初来乍到,求各位大神帮帮小弟吧,要崩溃了!!!!!
- 突然想到一个提交表单的问题,大家不要笑,有点幼稚
- form表单提交servlet错误
- struts1与struts2中由Action到JSP页面的传值问题
- 文件下载问题 100分等你拿!
- 高分求一简单问题,非常着急!!!!!!!!!!!!!!!!
- 怎样用java实现把文件夹加密解密?请高手帮忙!
- 怎么提高数据库的插入效率,大家帮忙解决,
- 如何把Servlet配置到其他路径,请问错在哪里
- 为何文件不能下载?
- 初涉Struts 练习增删查改 操作的疑惑(关于Logic:iterate List ...... )
- 附件存在数据库中,下载时以二进制流直接向客户端写,会不会特别耗内存
{
request.setAttribute("message","访问该页面需要登录!");
response.sendRedirect("login.jsp");
}
这个是肯定执行了的因为第二个代码就是在login.jsp中的,而且调试时我也看了 if(error!=null&&error.equals("error"))error有值
String error=(String)session.getAttribute("error");
if(error!=null&&error.equals("error"))
{
request.setAttribute("message","访问该页面需要登录!");
response.sendRedirect("login.jsp");改成 request.getRequestDispatcher("login.jsp").forward(request, response); }//试试,可能不行,但也试试
%>
另外<%
String message=(String)request.getAttribute("message");
if(message!=null&&message!="") //应该是!"".equals(message)
out.print(message+"<br>");
%>
不是基于同一次请求的,它是两次不同的请求,是重定向啊!
你把值放到request中,就是放到了请求中呀!
request.setAttribute("message","访问该页面需要登录!");你放到session中或是用转发。。
response.sendRedirect("login.jsp"); 会丢失请求作用域的参数的,因为它可以理解是跳转到其他站点或者是其他页面,也就是楼上所说的 请求不一样了.换一种跳转方式或者是将值存储到 application 或者是 session 作用域中.
还是用request.getRequestDispatcher().forward(request,response)好了 。。
参考下:
http://topic.csdn.net/u/20070525/13/c3cd6e2c-3c07-4f97-97c9-04f7051882b3.html
那么你在这之前定义的request(request.setAttribute)在另一个Servlet中是得不到这个值的 。
你可以用请求转发的方式 ,如request.getRequestDispatcher("XXX.jsp").forward(request, response);
String message=(String)request.getAttribute("message");
if(message!=null&&message!="") //应该是!"".equals(message)
out.print(message+"<br>");
%> 正解