package cn.class3g.web.domain;
public class User {
private String username;
private String password;
public User() {
}
public User(String username, String password) {
super();
this.username = username;
this.password = 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;
}
}
package cn.class3g.web.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.class3g.web.domain.User;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//獲取jsp頁面中的參數
String username=request.getParameter("username");
String password=request.getParameter("password");
User user=new User(username,password);
//getSession時創建session, 往session域中寫
request.getSession().setAttribute("user",user);
response.sendRedirect(request.getContextPath()+"/index.jsp");
}
}
package cn.class3g.web.listener;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import cn.class3g.web.domain.User;
public class SessionAtrributListener implements HttpSessionAttributeListener {
public void attributeAdded(HttpSessionBindingEvent se) {
//取值 Obj=User
Object obj=se.getValue();
if(obj instanceof User){
HttpSession session=se.getSession();
ServletContext context= session.getServletContext();
//實現共享檢索存儲在context實例中的對象
Map map=(Map)context.getAttribute("map");
if(map==null){
map=new HashMap();
context.setAttribute("map", map);
}
User user=(User) obj;
map.put(user.getUsername(), session);
}
}
public void attributeRemoved(HttpSessionBindingEvent se) {
}
public void attributeReplaced(HttpSessionBindingEvent se) {
}
}
package cn.class3g.web.servlet;
import java.io.IOException;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class KickUserServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username=request.getParameter("username");
Map map=(Map)this.getServletContext().getAttribute("map");
HttpSession session=(HttpSession) map.get(username);
if(session!=null){
session.invalidate();
map.remove(username);
}
request.getRequestDispatcher("/listuser.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}