Servlet - HttpSessionListenerとHttpSessionAttributeListener
二つのListenerを一つのクラスに記述する。
HttpSessionListener
HttpSessionAttributeListener
HttpSessionListenerImp .java |
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class HttpSessionListenerImp implements HttpSessionListener,
HttpSessionAttributeListener {
// session開始
@Override
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("セッション開始しました。");
HttpSession se = arg0.getSession();
if (se.isNew()) {
System.out.println("新規セッションです。");
}
System.out.println("セッションID : " + se.getId());
}
// session破棄
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("セッションを破棄しました。");
}
// session属性追加
@Override
public void attributeAdded(HttpSessionBindingEvent arg0) {
System.out.println("セッション属性を追加しました。");
}
// session属性削除
@Override
public void attributeRemoved(HttpSessionBindingEvent arg0) {
System.out.println("セッション属性を削除しました。");
}
// session属性置換
@Override
public void attributeReplaced(HttpSessionBindingEvent arg0) {
System.out.println("セッション属性を置換しました。");
}
}
|
SessionListenerServlet.java |
import java.io.IOException;
import java.io.PrintStream;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet(urlPatterns="/sessionListenerServlet")
public class SessionListenerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession se = request.getSession();
se.setAttribute("name", "alex");
se.setAttribute("name", "john");
se.removeAttribute("name");
// requestの文字コード
request.setCharacterEncoding("UTF-8");
// set responce contecTtype
response.setContentType("text/html;charset=UTF-8");
// output stream
PrintStream out = new PrintStream(response.getOutputStream());
out.println("<html>");
out.println("<title>");
out.println("it is change session attribute servlet.");
out.println("</title>");
out.println("<br/>");
out.println("セッションリスナーテストServletです。");
out.println("</html>");
}
}
|