私は、要求が処理される前に、それはこのようにブラウザに日付/時刻を表示することをFilter
を実装する場合:のJava EEフィルタとリスナー
@WebServlet(name = "TimedServlet",
urlPatterns =
{
"/timed_servlet"
}, initParams =
{
@WebInitParam(name = "prod", value = "true")
})
class TimedServlet extends HttpServlet
{
@WebFilter(filterName = "Time_F",
urlPatterns =
{
"/timed_servlet"
})
private class Time_F implements Filter
{
private FilterConfig fc;
public void init(FilterConfig filterConfig) throws ServletException
{
fc = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
Calendar cal = Calendar.getInstance();
SimpleDateFormat sd_f = new SimpleDateFormat();
response.getWriter().println(sd_f.format(cal));
chain.doFilter(request, response);
}
public void destroy()
{
fc = null;
}
}
protected void doRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter())
{
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ---</title>");
out.println("</head>");
out.println("<body>");
out.println("PROD");
out.println("</body>");
out.println("</html>");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doRequest(request, response);
}
public String getServletInfo()
{
return "...";
}
}
何もブラウザで見られなかったが、唯一のサーブレット出力されます!
ServletRequestListener
を処理したい場合はどうすれば応答オブジェクトにアクセスできますか? ユーザーに情報を表示できますか?
ありがとうございました。
データを書き込んだ直後に 'response.getWriter()。flush()'を試してみてください。 – Jeremy
もう一度!!! – xdevel2000