ServletとJSPを、本を見ながら勉強中ですが、わからないことがありご質問させてください。
ServletからJSPをインクルードで呼び出す場合です。
以下の2つのservletとjspがあります。
test.java
Servlet
1import java.io.IOException; 2import java.io.PrintWriter; 3import javax.servlet.ServletException; 4import javax.servlet.http.*; 5import javax.servlet.annotation.WebServlet; 6 7@WebServlet(urlPatterns={"/include_test"}) 8public class Include extends HttpServlet { 9 10 public void doGet ( HttpServletRequest request 11 ,HttpServletResponse response) 12 throws ServletException , IOException { 13 14 response.setContentType("text/html; charset=UTF-8"); 15 PrintWriter out=response.getWriter(); 16 17 out.println("<!DOCTYPE html>"); 18 out.println("<html>"); 19 out.println("<head>"); 20 out.println("<meta charset='UTF-8'>"); 21 out.println("<title>Servlet/JSP Sample Programs</title>"); 22 out.println("</head>"); 23 out.println("<body>"); 24 25 //インクルードする 26 request.getRequestDispatcher("include1.jsp").include(request,response); 27 28 out.println("</body>"); 29 out.println("</html>"); 30 31 } 32 33} 34
include1.jsp
JSP
1<%@page contentType="text/html; charset=UTF-8" %> 2 3<p>include1.jspの内容です。</p>
クライアントからのリクエストをservletで受けて、JSPをインクルードで呼び出して、servletが
レスポンスを返すサンプルになっており、
上記のプログラムは、実行すると問題なく想定通りに動きます。
レスポンス用のhtmlを、out.printlnで組み立てていっておりますが、
JSPをインクルードで呼び出す箇所(include1.jspを呼び出している所)は、
out.printlnを行っていないのにレスポンスのhtmlにinclude1.jspの内容が含まれているのが
なぜなのか分かりません。
私のイメージとしては、
out.println(request.getRequestDispatcher("include1.jsp").include(request,response));
と記載されているとしっくりくるのですが。
どのような仕組みになっているのか、ご教示頂けないでしょうか。
アプリケーションサーバは、Apache Tomcat/8.5.11です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/10 01:15