質問: request.getParameter("empName"); System.out.println(empName); request.setAttribute("empName", empName); request.getRequestDispatcher("eto.jsp").forward(request, response); } } JSP側 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 干支 西暦 <%=request.getAttribute("empName") %> ${empName}
回答: 入力画面と表示画面を一緒にした場合、まずjspは以下のように入力フォームと、干支の計算結果が得られた場合の画面を作ります。 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%> 干支の表示 西暦を入力 <% String eto = (String)request.getAttribute("eto"); if (eto != null) { out.print("干支は" + eto + "です"); } %> ``` 干支の内容は、入力フォームから、yearの名前で調べたい西暦を入力し、リクエスト属性 eto でサーブレットから受け取れると決めておいて、 サーブレットでは、 ``` import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 干支計算。 * @author A-pZ */ @WebServlet("/zodiac") public class ZodiacServlet extends HttpServlet { // 干支:西暦1984年が子 private final String[] 干支 = {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"}; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Integerに変換失敗した場合のエラーハンドリングは書いていません。 String yearValue = request.getParameter("year"); Integer year = Integer.parseInt(yearValue); // 干支の文字列から、左から何番目かを指定して取り出したものをリクエスト属性へ格納 int position = (year - 1983) % 12; request.setAttribute("eto", 干支[position]); // JSPを表示 request.getRequestDispatcher("zodiac.jsp").forward(request, response); } } ``` JSPから入力した西暦や数値でない場合や、1984年未満のときの制御は適宜追加してください。