演習課題「Servletから、JSPを呼び出そう」
右の環境には、ServletとJSPで、Webページを表示するプログラムが作成してあります。
このプログラムを修正して、ShowTemplate.javaからindex.jspを呼び出してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#07:ServletからJSPを呼び出そう
ここでは、ServletからJSPを呼び出す方法を学習します。ServletとJSPを連携させることで、Webアプリケーションの制御部分と表示部分を役割分担が明確になります。
tomcat/
 |
 - webapps/
   |
   - mywork/
     |
     - HelloWorld.java    (ソースコード)
     - ShowTemplate.java
     - WEB-INF/
       |
       - web.xml
       - classes/
         |
         - HelloWorld.class   (クラスファイル)
         - ShowTemplate.class
       - views/
         |
         - index.jsp   (JSPファイル)
(tomcat/webapps/mywork/ShowTemplate.java)import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ShowTemplate extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException{
        String view = "/WEB-INF/views/index.jsp";
        RequestDispatcher dispatcher = request.getRequestDispatcher(view);
        dispatcher.forward(request, response);
    }
}
$ javac -classpath "../../lib/servlet-api.jar" -d WEB-INF/classes ShowTemplate.java
(tomcat/webapps/mywork/WEB-INF/web.xml)<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
        version="4.0" metadata-complete="true">
    <servlet>
        <servlet-name>Hello</servlet-name>
        <servlet-class>HelloWorld</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>Servlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>Template</servlet-name>
        <servlet-class>ShowTemplate</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Template</servlet-name>
        <url-pattern>/show</url-pattern>
    </servlet-mapping>
</web-app>
- Javaの道>Servlet・JSP
  https://www.javaroad.jp/servletjsp/index.html
- Servletアプリ開発:目次 - Web系開発メモ
  http://web-dev.hatenablog.com/entry/java/servlet/dev-restful-app/table-of-contents