一个web总会在不同的页面跳转,必不可少的总会要有一些msg从这里要传到那里,那么这些msg要怎么才能成功传达到呢?
没错,我想到的是JSP9个内置对象中的那个很重要的request
request.setAttribute("msg","成功到达!");
if(request.getAttribute("msg") != null)
{
out.printf(request.getAttibute("msg"));
}
不过我试过了,request只能在jsp和与之对应的servlet中用,无法跳到别的页面中用,其实想想也是,每个页面都有自己的内置request,凭什么人家就会拿到你的msg?人家只会拿到自己的request发的信息。那么不同页面就老死不往来了吗?NO!session告诉你,你可以用它来传递msg。
login.java:
if(该用户存在){
String page="main.jsp";//跳转的页面赋为main.jsp
HttpSession session=request.getSession(true);
session.setAttribute("success", "成功登录");//在这里种下session的msg
RequestDispatcher rd = request.getRequestDispatcher(page);//跳转走
rd.forward(request, response);
}
main.jsp:
<%
if(session.getAttribute("success")==null)
{
session.setAttribute("failed","您尚未登录!");//如果登陆失败,告诉一下人家失败的原因
RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
rd.forward(request, response);
}
%>
这样就能防止一些混人想不登陆直接上main.jsp了!
不过在login.jsp页面总得告诉一下,为什么不让他成功操作吧,不然人家以为系统坏了呢。。
login.jsp:
<%
if(session.getAttribute("failed")!=null)
{
out.println(session.getAttribute("failed"));//得到失败的原因
}
%>