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>");
}
}
|
出力メッセージ |
リクエストを取得しました。
リクエスト属性を追加しました。
リクエスト属性を置換しました。
リクエスト属性を削除しました。
リクエストを破棄しました。
|