index.html
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>計算さん</title>
</head>
<body>
<form action="/day2_Sarvlet_HP_CalcQ2/calc" method="POST"><%-- 改行を入れないしてい --%>
<p>x:<input type="number" name="x" value="0"> y:<input type="number" name="y" value="0"></p>
<p><label for="puls"><input type="radio" name="ope" value="plus" id="puls" checked>+</label>
<label for="minus"><input type="radio" name="ope" value="minus" id="minus">-</label>
<label for="mul"><input type="radio" name="ope" value="multi" id="mul">*</label>
<p><input type="submit" value="送信"></p>
</form>
</body>
</html>
calc.java
@WebServlet("/calc")
public class calc extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//index.jsp type="number"のname="y"と"x"を受け取る
int x = Integer.parseInt(request.getParameter("x"));
int y = Integer.parseInt(request.getParameter("y"));
//index.jsp type="radio"の受け取りとname="ope"の受け取り
//opeのvalueは"plus""minus""multi"の三種類
String ope = request.getParameter("ope");
int result = 0;
String opeStr="";
switch(ope) {
case "plus":
result = x+y;
opeStr ="和";
break;
case "minus":
result = x-y;
opeStr="差";
break;
case "multi":
result=x*y;
opeStr="積";
break;
}
response.setContentType("text/html; charset=UTF-8");
PrintWriter out=response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='utf-8' />");
out.println("<title>計算くん</title>");
out.println("</head>");
out.println("<body>");
out.println(String.format("<p>%dと%dの%sは%dです。</p>", x,y,opeStr,result));
out.println("<p><a href='index.jsp'>戻る</a></p>");
out.println("</body>");
out.println("</html>");
}
}