Struts2实现显示在线人数
登录成功以后将用户信息放入Session域中(在线人数+1)
在线人数信息保存在application域中
登出时使session直接失效(在线人数-1)
index
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>欢迎登陆</h3>
<form action="user_login" method="post">
用户名 <input type="text"name="username"/><br/>
密码 <input type="password"name="password"/><br/>
<input type="submit" value="登录"/><br/>
</form>
</body>
</html>
success
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录成功</title>
</head>
<body>
<h1>欢迎${sessionScope.loginUser}登录!</h1>
<h3>当前在线人数:${applicationScope.count}</h3>
<h1><a href="user_logout">登出</a></h1>
</body>
</html>
logout
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>欢迎下次再来</h1>
</body>
</html>
Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="user_login" class="com.Action.UserAction"
method="login">
<result>/WEB-INF/views/success.jsp</result>
<allowed-methods>*</allowed-methods>
</action>
<action name="user_logout" class="com.Action.UserAction"
method="logout">
<result>/WEB-INF/views/baby.jsp</result>
<allowed-methods>*</allowed-methods>
</action>
</package>
</struts>
UserAction
package com.Action;
import java.util.Map;
import org.apache.struts2.dispatcher.SessionMap;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.SessionAware;
public class UserAction implements SessionAware,ApplicationAware{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String logout() {
((SessionMap)session).invalidate();
return "success";
}
public String login() {
if (session.get("loginUser") != null) {
return "success";
}
System.out.println(username+password);
session.put("loginUser",username);
Integer count = (Integer) application.get("count");
if (count == null) {
count = 0;
}
application.put("count", count+1);
return "success";
}
private Map<String, Object>session;
@Override
public void setSession(Map<String, Object> arg0) {
this.session = arg0;
}
private Map<String, Object>application;
@Override
public void setApplication(Map<String, Object> arg0) {
this.application = arg0;
}
}
还没有评论,来说两句吧...