今回は、「サーブレット+JSP(1)―動作の仕組みとコード―」です。
サーブレットとJSPを併用することが、いちばん使うパターンです。
このときの動作とコードについて見てみましょう。
■動画はこちら
■動画で使用しているソースコード
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(); //結合結果を取得 String ans = c.getAnswer(); //結合結果をリクエストにセット req.setAttribute("answer", ans); //ビュー(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 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% //結合結果をリクエストから取得 String ans = (String)request.getAttribute("answer"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> 文字列の結合結果:<br /> <%= ans %> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" id="WebApp_ID" version="5.0"> <display-name>testWeb</display-name> <servlet> <description></description> <display-name>App1</display-name> <servlet-name>App1</servlet-name> <servlet-class>yurufuwa.prog.sample.App1</servlet-class> </servlet> <servlet-mapping> <servlet-name>App1</servlet-name> <url-pattern>/app1</url-pattern> </servlet-mapping> </web-app> |