弊社の新人エンジニア研修向けのJSP Servletの問題集です。
1.静的インクルード
以下のServlet:IncludeにInclude2、3を静的インクルード(<%@ %>)するように①②を埋めなさい
<アウトプット例>
<ソースコード①>
package p10; import java.io.IOException; import java.io.PrintWriter; 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 = {"/Include"}) public class Include extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //① //② } }
<ソースコード②>
package p10; import java.io.IOException; import java.io.PrintWriter; 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 = {"/Include2"}) public class Include2 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("<p>Hello from Include2.</p>"); } }
<ソースコード③>
package p10; import java.io.IOException; import java.io.PrintWriter; 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 = {"/Include3"}) public class Include3 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("<p>Hello from Include3.</p>"); } }
2.動的インクルード
上記1のコードを動的インクルード(<jsp: />)で書き換えなさい。
3.静的インクルードと動的インクルードの違い
以下のコードを実行し、静的インクルードと動的インクルードの違いについて述べなさい。
ヒント:includeしたファイルの変数が使えるのはどちらの方法か?
<ソースコード①>
<%@ page language="java" contentType="text/html; charset=UTF-8"%> <!DOCTYPE> <html> <head> <meta charset="UTF-8"> <title>静的インクルードと動的インクルードの違い</title> </head> <body> <%@ include file="included1.jsp" %> <jsp:include page="included2.jsp" /> <hr> Hello from <%=origin%>. </body> </html>
<ソースコード②>
<%@ page language="java" contentType="text/html; charset=UTF-8"%> <% String origin = "included1";%> Hello from included1.<br>
<ソースコード③>
<%@ page language="java" contentType="text/html; charset=UTF-8"%> <% String origin = "included2";%> Hello from included2.<br>
4.静的インクルード
JSPを使い以下のようにメニューを静的インクルードして各ページに行き来できるようにしなさい。
<アウトプット例>
<menu.jspのソースコード>
<%@page contentType="text/html" pageEncoding="UTF-8"%> <a href ="login.jsp">ログイン画面</a> <a href ="search.jsp">検索画面</a> <a href ="update.jsp">更新画面</a> <a href ="delete.jsp">削除画面</a>