サンプルコード
servletを学び始めて3日目です。
サーブレットのコードを読みながら、メソッドや様々なクラスの事を調べてみたり、ソースコードを読んだりしてみています。
以下のhtmlをレスポンスするサンプルコードなのですが
doGetメソッドが始まってから2行目の
PrintWriter out = response.getWriter();
という記述で、getWriter()メソッドがあります。
このメソッドの動きが知りたいです。
servlet
1package chapter4; 2 3import java.io.IOException; 4import java.io.PrintWriter; 5 6import javax.servlet.ServletException; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10 11public class Hello3 extends HttpServlet { 12 13 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 14 15 response.setContentType("text/html; charset = UTF-8"); 16 PrintWriter out = response.getWriter(); 17 18 out.println("<DOCTYPE html>"); 19 out.println("<html>"); 20 out.println("<head>"); 21 out.println("<meta charset = 'UTF-8'>"); 22 out.println("<title>Servlet/JSP Sample Programs</title>"); 23 out.println("</head>"); 24 out.println("<body>"); 25 26 out.println("<p>Hello!</p>"); 27 out.println("<p>こんにちは!</p>"); 28 out.println("<p>" + new java.util.Date() + "</p>"); 29 30 out.println("</body>"); 31 out.println("</html>"); 32 } 33} 34
疑問
getWriter()メソッドはServletResponseインタフェースを継承したHttpServletResponseインタフェースのメソッドだそうですが(親から継承したメソッド)
このメソッドの説明をネットで調べてみたのですが、クライアントに文字テキストを送信できるPrintWriterオブジェクトを返すという事が書いてあるのですが、実際にどういう動きをするのかが分かりませんでした。
親クラスのServletResponseインタフェースのソースコードも読んでみましたが、メソッドの中身は空でした。
継承先のHttpServletResponseインタフェースでオーバーライドされてるのかと思いコードを見てみましたが、その中でも空でした(読み間違えでなければ…)。
getWriter()メソッドによって、どういう動きをしているのでしょうか。
responseの指すHttpServletResponseオブジェクトをgetWriter()することによって、何が起きて、PrintWriter型の戻り値が来ているのでしょうか…
まだまだ分からないことだらけですが、宜しければ教えて頂けないでしょうか。
回答1件
あなたの回答
tips
プレビュー