ServletActionContext.getRequest().setAttribute("Login","true");
只是request是不够的,用request则是一次页面请求后Login这个Attribute就没有了.
应该是用Session
ServletActionContext.getRequest().getSession(true).setAttribute("Login","true");
这样就是在整个会话过程中都有效..
然后到了每个jsp页面的时候,在jsp页面开头进行下验证
<%
if(request.getAttribute("Login")!=null){
String message=(String)request.getAttribute("Login");
if(!message.equals("true"))
//如果登录标志不为true则跳转回登录页面
response.sendRedirect("/login.jsp");
}
%>
其实用过滤器Filter也可以做,原理是类似的..
jsp页面判断是否登录:
<%
String islogin="visibility:hidden";
if(request.getAttribute("Login")!=null){
islogin=(String)request.getAttribute("Login");
if(islogin.equals("true"))
//如果登录标志不为true则跳转回登录页面
islogin="visibility:visible";
}
%>
根据登录情况设置某些组件是否显示
<html:link page="/good/addgood.jsp" style="<%= islogin %>"> <font size="2" color="blue">点我添加商品</font> </html:link>