liguofeng29’s blog

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

Servlet - ServletRequestListenerとServletRequestAttributeListener

二つのListenerを一つのクラスに記述する。

 

ServletRequestListener

ServletRequestAttributeListener

ServletReqListenerImp .java
 
 
 
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
 
@WebListener
public class ServletReqListenerImp implements ServletRequestListener, ServletRequestAttributeListener {
 
// requestキャッチ
@Override
public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("リクエストを取得しました。");
}
 
// request破棄
@Override
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("リクエストを破棄しました。");
}
 
// request属性追加
@Override
public void attributeAdded(ServletRequestAttributeEvent arg0) {
System.out.println("リクエスト属性を追加しました。");
}
 
// request属性置換
@Override
public void attributeReplaced(ServletRequestAttributeEvent arg0) {
System.out.println("リクエスト属性を置換しました。");
}
 
// request属性削除
@Override
public void attributeRemoved(ServletRequestAttributeEvent arg0) {
System.out.println("リクエスト属性を削除しました。");
}
}
 
 
RequestListenerServlet.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;
 
@WebServlet(urlPatterns="/requestListenerServlet")
public class RequestListenerServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    protected void service(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
 
    request.setAttribute("name", "alex");
    request.setAttribute("name", "john");
    request.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("リクエストリスナーテストServletです。");
        out.println("</html>");
    }
}
 
 
 
出力メッセージ
リクエストを取得しました。
リクエスト属性を追加しました。
リクエスト属性を置換しました。
リクエスト属性を削除しました。
リクエストを破棄しました。