演習課題「ボタンを押して、別の画面を表示する」
右の環境には、ServletとJSPで投稿フォームが作成してありますが、「送信する」ボタンを押しても何も表示されません。ボタンを押したら、ResultServletを呼び出すようプログラムを修正してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#04:POSTメソッドでServletを呼び出そう - その2
ここでは、先ほどの続きとして、フォームから呼び出したServletのメッセージを表示してみたいと思います。
(tomcat/webapps/myform/ResultServlet.java)import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ResultServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setAttribute("message", "Thank you!");
        String view = "/WEB-INF/views/result.jsp";
        RequestDispatcher dispatcher = request.getRequestDispatcher(view);
        dispatcher.forward(request, response);
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setAttribute("message", "Hello GET!");
        String view = "/WEB-INF/views/result.jsp";
        RequestDispatcher dispatcher = request.getRequestDispatcher(view);
        dispatcher.forward(request, response);
    }
}
(tomcat/webapps/myform/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>ShowForm</servlet-name>
        <servlet-class>FormServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ShowForm</servlet-name>
        <url-pattern>/show</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>ShowResult</servlet-name>
        <servlet-class>ResultServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ShowResult</servlet-name>
        <url-pattern>/result</url-pattern>
    </servlet-mapping>
</web-app>
(tomcat/webapps/myform/WEB-INF/views/result.jsp)<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
        <title>Java - paiza</title>
    </head>
    <body>
        <% String message = (String)request.getAttribute("message");%>
        <h1><%= message %></h1>
        <p><a href="show">戻る</a></p>
    </body>
</html>
$ javac -classpath "../../lib/servlet-api.jar" -d WEB-INF/classes ResultServlet.java
- 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
- JSP(formデータ)とJava Servletプログラムの連携 - はしくれエンジニアもどきのメモ
  http://cartman0.hatenablog.com/entry/2015/12/08/181657