JSP & Servlet-2日目

JSP&Servlet

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

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

[解答例]
●plus.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="result.jsp">
<p>x:<input type="number" name="x" value="0">
y:<input type="number" name="y" value="0">
<input type="submit" value="送信">
</p>
</form>
</body>
</html>

●result.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
int x=Integer.parseInt(request.getParameter("x"));
int y=Integer.parseInt(request.getParameter("y"));
int sum=x+y;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>足し算くん</title>
</head>
<body>
<%=x %>と<%=y %>の和は<%=sum %>です。
<a href="plus.jsp">戻る</a>
</body>
</html>

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

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

[解答例]
●index.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="/joytas2/calc" method="POST">
<p>x:<input type="number" name="x" value="0">&nbsp;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>

●Result.java(Servlet)

package joytas;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/calc")
public class Result extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		int x=Integer.parseInt(request.getParameter("x"));
		int y=Integer.parseInt(request.getParameter("y"));
		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>");	
	}

}

コメント

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