JSP & Servlet-2日目

JSP&Servlet

Q1.2つの整数を入力し、ボタンを押すと2つの整数の和を求めるアプリを作成せよ。
入力画面、出力画面ともにjspで作成し、送信にはGETを使用すること。(正常系のみを考慮すればよい)
[実行例]
●スタート画面

●数値を入れ、ボタンを押すと結果が表示される。

[解答例]
●plus.jsp

01<%@ page language="java" contentType="text/html; charset=UTF-8"
02    pageEncoding="UTF-8"%>
03<!DOCTYPE html>
04<html>
05<head>
06<meta charset="UTF-8"/>
07<title>足し算くん</title>
08</head>
09<body>
10<form action="result.jsp">
11<p>x:<input type="number" name="x" value="0">
12y:<input type="number" name="y" value="0">
13<input type="submit" value="送信">
14</p>
15</form>
16</body>
17</html>

●result.jsp

01<%@ page language="java" contentType="text/html; charset=UTF-8"
02    pageEncoding="UTF-8"%>
03<%
04int x=Integer.parseInt(request.getParameter("x"));
05int y=Integer.parseInt(request.getParameter("y"));
06int sum=x+y;
07%>
08<!DOCTYPE html>
09<html>
10<head>
11<meta charset="UTF-8"/>
12<title>足し算くん</title>
13</head>
14<body>
15<%=x %>と<%=y %>の和は<%=sum %>です。
16<a href="plus.jsp">戻る</a>
17</body>
18</html>

Q2.2つの整数を入力し、演算子を選び送信を押すと計算結果を表示するアプリを作成せよ。
フォーム画面はjsp,結果画面はServletを使用すること。なお送信方法はPOSTで行う。
(正常系のみを考慮すればよい)
[実行例]
●スタート画面

●2つの数値と演算子を選び送信すると結果が表示される。

[解答例]
●index.jsp

01<%@ page language="java" contentType="text/html; charset=UTF-8"
02    pageEncoding="UTF-8"%>
03<!DOCTYPE html>
04<html>
05<head>
06<meta charset="UTF-8"/>
07<title>計算くん</title>
08</head>
09<body>
10<form action="/joytas2/calc" method="POST">
11<p>x:<input type="number" name="x" value="0">&nbsp;y:<input type="number" name="y" value="0"></p>
12<p><label for="puls"><input type="radio" name="ope" value="plus" id="puls" checked>+</label>
13<label for="minus"><input type="radio" name="ope" value="minus" id="minus">-</label>
14<label for="mul"><input type="radio" name="ope" value="multi" id="mul">*</label>
15<p><input type="submit" value="送信"></p>
16</form>
17</body>
18</html>

●Result.java(Servlet)

01package joytas;
02 
03import java.io.IOException;
04import java.io.PrintWriter;
05 
06import javax.servlet.ServletException;
07import javax.servlet.annotation.WebServlet;
08import javax.servlet.http.HttpServlet;
09import javax.servlet.http.HttpServletRequest;
10import javax.servlet.http.HttpServletResponse;
11 
12 
13@WebServlet("/calc")
14public class Result extends HttpServlet {
15  private static final long serialVersionUID = 1L;
16 
17  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
18    request.setCharacterEncoding("UTF-8");
19    int x=Integer.parseInt(request.getParameter("x"));
20    int y=Integer.parseInt(request.getParameter("y"));
21    String ope=request.getParameter("ope");
22    int result=0;
23    String opeStr="";
24    switch(ope){
25    case "plus":
26      result=x+y;
27      opeStr="和";
28      break;
29    case "minus":
30      result=x-y;
31      opeStr="差";
32      break;
33    case "multi":
34      result=x*y;
35      opeStr="積";
36      break;
37    }
38    response.setContentType("text/html; charset=UTF-8");
39    PrintWriter out=response.getWriter();
40    out.println("<!DOCTYPE html>");
41    out.println("<html>");
42    out.println("<head>");
43    out.println("<meta charset='utf-8' />");
44    out.println("<title>計算くん</title>");
45    out.println("</head>");
46    out.println("<body>");
47    out.println(String.format("<p>%dと%dの%sは%dです。</p>", x,y,opeStr,result));
48    out.println("<p><a href='index.jsp'>戻る</a></p>");
49    out.println("</body>");
50    out.println("</html>");
51  }
52 
53}

コメント

タイトルとURLをコピーしました