演習課題「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