liguofeng29’s blog

個人勉強用ブログだっす。

Servlet - ServletContextAttributeListener

application範囲の属性変更を監視するServletContextAttributeListenerを実装する。

 

ServletContextListenerImp.java
 
 
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.annotation.WebListener;
 
@WebListener
public class ServletContextAttributeListenerImp implements ServletContextAttributeListener {
 
// application属性追加リスナー
@Override
public void attributeAdded(ServletContextAttributeEvent arg0) {
// TODO 自動生成されたメソッド・スタブ
System.out.println("application属性が追加されました。");
}
 
// application属性削除リスナー
@Override
public void attributeRemoved(ServletContextAttributeEvent arg0) {
System.out.println("application属性が削除されました。");
}
 
// application属性置換リスナー
@Override
public void attributeReplaced(ServletContextAttributeEvent arg0) {
System.out.println("application属性が置換されました。");
}
}
 
ServletContextListenerImp.java
 
 
import java.io.IOException;
import java.io.PrintStream;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet(urlPatterns="/chageContextAttributeServlet")
public class ChageContextAttributeServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    protected void service(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
 
    ServletContext sc = getServletContext();

        //application 属性変更
    sc.setAttribute("name", "alex");
    sc.setAttribute("name", "john");
    sc.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 context attribute servlet.");
        out.println("</title>");
        out.println("<br/>");
        out.println("</html>");
    }
}
 
 
 
出力されるメッセージ
application属性が追加されました。
application属性が置換されました。
application属性が削除されました。