- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出现错误:
java.lang.IllegalStateException: getAttributeNames: Session already invalidated.After logout from parent window.
LogOutUserAction.java
public String execute() throws Exception {
System.out.println("inside :: LogOutUserAction------");
//HttpServletRequest request = null;
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session =request.getSession(true);
session.removeAttribute("loggedInUser");
request.getSession(false).invalidate();
session=null;
return "logout";
}
登录拦截器
public String intercept(ActionInvocation invocation) throws Exception {
final ActionContext context = invocation.getInvocationContext();
HttpServletRequest request = (HttpServletRequest) context
.get(HTTP_REQUEST);
HttpServletResponse response = (HttpServletResponse) context
.get(HTTP_RESPONSE);
HttpSession session = request.getSession(true);
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
/*user logged out from the parent window then set the message
for click on the popup window*/
if(session == null){
System.out.println("set the attribute");
request.setAttribute("SessionExpired","Your have already logged out");
}
Object user = session.getAttribute(USER_HANDLE);
String loginOut = request.getParameter(LOGIN_OUT);
System.out.println("loginOut---->"+loginOut);
if (user == null) {
// The user has not logged in yet.
System.out.println(" inside if ");
// Is the user attempting to log in right now?
String loginAttempt = request.getParameter(LOGIN_ATTEMPT);
/* The user is attempting to log in. */
if (!StringUtils.isBlank(loginAttempt)) {
return invocation.invoke();
}
return "login";
} else {
return invocation.invoke();
}
}
登录.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
if (request.getAttribute("SessionExpired")!= null)
{
System.out.println("After Session invalid");
}
%>
<html>
<head>
<title>Login</title>
<sx:head cache="true"/>
<script type="text/javascript">
</script>
<script type="text/javascript" language="javascript" src="js/login.js"></script>
<style type="text/css">
.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
.style2 {
color: #000099
}
</style>
</head>
<body bgcolor="#CODFFD" background="<%request.getContextPath();%>images/watermark_new.jpg">
<br>
<br>
<br>
<br>
<br>
<br>
<div align="center"><span class="style1">USER LOGIN</span>
<br>
<br>
<br>
<s:form action="checkUserLogin.action" validate="true" name = "loginForm">
<s:hidden name="loginAttempt" value="%{'1'}" />
<table border="0" cellspacing="1" cellpadding="0" width="350" >
<tr>
<td align="center">
<b>Login ID</b>
</td>
<td>
<table>
<s:textfield id="id" name="loginId" value="" />
</table>
</td>
</tr>
<tr>
<td align="center">
<b>Password</b>
</td>
<td>
<table>
<s:password id="password" name="loginPassword" value="" showPassword="true"/>
</table>
</td>
</tr>
<tr><td colspan="2" align="center">
<table>
<s:submit value="Login" onclick = "return getRoleList()"/>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<table>
<s:a href="changePasswordScreen.action" >Change Password</s:a>
</table>
</td>
</tr>
</table>
</s:form>
</div>
<br>
<br>
<br>
</body>
</html>
需要在弹出窗口上显示消息(当我单击任何链接时),正如我在从父窗口注销后在登录jsp中提到的那样。
最佳答案
拦截器可以在调用 Action 之前和之后执行代码。你的什么时候被调用?我想象发生的事情是这样的:
为什么要使 session 无效?您的 LoginInterceptor 使用 USER_HANDLE 属性的存在来指示用户是否已登录。我会在您的 LogOutUserAction 中删除此属性,但不要使 session 无效。
关于java.lang.IllegalStateException : getAttributeNames: Session already invalidated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10618138/
我正在尝试记录 HttpServletRequest 属性集合的内容。我需要在 servlet 首次启动时执行此操作,并在 servlet 完成之前再次执行此操作。我这样做是为了了解一个笨拙且维护不善
我正在处理一个项目,但 ServletContext 类的 getAttributeNames() 返回的 Enumeration 引用有问题。 getAttributeNames() 返回的属性名不
本文整理了Java中org.codehaus.cargo.util.XmlReplacement.getAttributeName()方法的一些代码示例,展示了XmlReplacement.getAt
出现错误: java.lang.IllegalStateException: getAttributeNames: Session already invalidated.After logout f
我们在 Tomcat 前面运行 Apache 并使用 mod_jk。我们在 Apache 模块上的单点登录设置了有关用户的信息,我们可以使用 getAttribute() 在 Java 中检索这些信息
本文整理了Java中org.eclipse.persistence.oxm.mappings.XMLInverseReferenceMapping.getAttributeName()方法的一些代码示
本文整理了Java中org.eclipse.persistence.oxm.mappings.XMLChoiceObjectMapping.getAttributeName()方法的一些代码示例,展示
本文整理了Java中org.eclipse.persistence.oxm.mappings.XMLChoiceCollectionMapping.getAttributeName()方法的一些代码示
本文整理了Java中com.thoughtworks.xstream.io.xml.xppdom.Xpp3Dom.getAttributeNames()方法的一些代码示例,展示了Xpp3Dom.get
我是一名优秀的程序员,十分优秀!