今回は、「サーブレット+JSP(2)―処理パターン―」です。
 サーブレットとJSPを併用するときの処理パターンを見てみましょう。
■動画はこちら
■動画で使用しているソースコード
 <処理結果の渡し方が違う処理パターン(1)>
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | package yurufuwa.prog.sample; import java.io.IOException; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletContext; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public class App1 extends HttpServlet {     @Override     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {         //パラメータの取得         String str1 = req.getParameter("str1");         String str2 = req.getParameter("str2");         //モデルで文字列結合         Concat c = new Concat();         c.setStr1(str1);         c.setStr2(str2);         c.join();         //モデルをリクエストにセット         req.setAttribute("result", c);         //ビュー(JSP)に結果を出力してもらう         ServletContext ctx = getServletContext();         RequestDispatcher rd = ctx.getRequestDispatcher("/WEB-INF/join.jsp");         rd.forward(req, resp);     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package yurufuwa.prog.sample; public class Concat {     private String str1 = null;     private String str2 = null;     private String answer = null;     public void join() {         answer = str1 + str2;     }     public void setStr1(String val) {         str1 = val;     }     public void setStr2(String val) {         str2 = val;     }     public String getAnswer() {         return answer;     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <%@ page import="yurufuwa.prog.sample.Concat" %> <%     //モデルをリクエストから取得     Concat c = (Concat)request.getAttribute("result"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> 文字列の結合結果:<br /> <%= c.getAnswer() %> </body> </html> | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | package yurufuwa.prog.sample; import java.io.IOException; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletContext; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public class App1 extends HttpServlet {     @Override     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {         //パラメータの取得         String str1 = req.getParameter("str1");         String str2 = req.getParameter("str2");         //モデルで文字列結合         Concat c = new Concat();         c.setStr1(str1);         c.setStr2(str2);         c.join();         //モデルの結果クラスを取得         ConcatResult cr = c.getResult();         //モデルの結果クラスをリクエストにセット         req.setAttribute("result", cr);         //ビュー(JSP)に結果を出力してもらう         ServletContext ctx = getServletContext();         RequestDispatcher rd = ctx.getRequestDispatcher("/WEB-INF/join.jsp");         rd.forward(req, resp);     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package yurufuwa.prog.sample; public class Concat {     private String str1 = null;     private String str2 = null;     private ConcatResult result = null;     public void join() {         //文字列の結合         String answer = str1 + str2;         //結果クラスに結合結果をセット         result = new ConcatResult();         result.setAnswer(answer);     }     public void setStr1(String val) {         str1 = val;     }     public void setStr2(String val) {         str2 = val;     }     public ConcatResult getResult() {         return result;     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package yurufuwa.prog.sample; public class ConcatResult {     private String answer = null;     public void setAnswer(String ans) {         answer = ans;     }     public String getAnswer() {         return answer;     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <%@ page import="yurufuwa.prog.sample.ConcatResult" %> <%     //モデルの結果クラスをリクエストから取得     ConcatResult cr = (ConcatResult)request.getAttribute("result"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> 文字列の結合結果:<br /> <%= cr.getAnswer() %> </body> </html> | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package yurufuwa.prog.sample; import java.io.IOException; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletContext; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public class App1 extends HttpServlet {     @Override     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {         //モデルで文字列結合         Concat c = new Concat();         c.join(req);         //モデルをリクエストにセット         req.setAttribute("result", c);         //ビュー(JSP)に結果を出力してもらう         ServletContext ctx = getServletContext();         RequestDispatcher rd = ctx.getRequestDispatcher("/WEB-INF/join.jsp");         rd.forward(req, resp);     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package yurufuwa.prog.sample; import jakarta.servlet.http.HttpServletRequest; public class Concat {     private String answer = null;     public void join(HttpServletRequest req) {         //パラメータの取得         String str1 = req.getParameter("str1");         String str2 = req.getParameter("str2");         //文字列の結合         answer = str1 + str2;     }     public String getAnswer() {         return answer;     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <%@ page import="yurufuwa.prog.sample.Concat" %> <%     //モデルをリクエストから取得     Concat c = (Concat)request.getAttribute("result"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> 文字列の結合結果:<br /> <%= c.getAnswer() %> </body> </html> | 














