728x90
x,y입력하고 select로 연산자를 선택하는 폼을 작성했다.
calForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 메뉴 -->
<div>
<a href="../index.jsp">index</a>
</div>
<h1>calForm</h1>
<form action="./calAction.jsp">
<input type="number" name="x">
<select name="op">
<option value="">연산자 선택</option>
<option value="add">+</option>
<option value="min">-</option>
<option value="mul">*</option>
<option value="div">/</option>
<option value="rest">%</option>
</select>
<input type="number" name="y">
<button type="submit">계산</button>
</form>
</body>
</html>
calForm에서 넘어온 x,y값을 request.getParameter()로 받아 int 변수에 저장.
연산자 기호도 받아와 String 문자열로 저장.
연산자에 따라 계산 후
페이지에 출력.
만약, 연산자가 선택안됐을 시 response.sendRedirect()를 사용해 calForm.jsp로 요청.
참고 : redirect는 서버에 요청하는 것이 아닌 클라이언트가 요청하는 것이다.
(ex. client가 서버에 a.jsp를 요청했는데 서버가 b.jsp를 요청해야한다고 알려주고, client가 b.jsp를 요청하게 한다.)
(forward와 다름, forward는 서버가 client로 요청을 받고, 다른 곳으로 연결해주는 것)
calAction.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String op = request.getParameter("op");
int x = Integer.parseInt(request.getParameter("x"));
int y = Integer.parseInt(request.getParameter("y"));
// int 연산자 int -> int ex) 5 / 2 -> 2
// double 연산자 double -> double ex) 6.0 / 2.0 -> 3.0
// int 연산자 double / double 연산자 int -> int가 double 되어 연산
// ex) 5 / 2.0 -> 5.0 / 2.0
// 숫자 + 문자 / 문자 + 숫자 -> 문자 + 문자로 변경 후 연산
// "a" + 7 -> "a" + "7" -> "a7"
System.out.println("op : " + op);
System.out.println("x : " + x);
System.out.println("y : " + y);
int result = 0;
String opSign = null;
if(op.equals("")){
response.sendRedirect("http://localhost/webjava/if/calForm.jsp");
return;
} else if(op.equals("add")) {
result = x + y;
opSign = "+";
} else if(op.equals("min")) {
result = x - y;
opSign = "-";
} else if(op.equals("mul")) {
result = x * y;
opSign = "*";
} else if(op.equals("div")) {
result = x / y;
opSign = "/";
} else if(op.equals("rest")) {
result = x % y;
opSign = "%";
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 메뉴 -->
<div>
<a href="../index.jsp">index</a>
</div>
<h1>calAction</h1>
<%=x%> <%=opSign%> <%=y%> = <%=result%> 입니다.
</body>
</html>
728x90
'STUDY > JSP' 카테고리의 다른 글
20240308 구구단 (0) | 2024.03.08 |
---|---|
20240307 주민번호 분석기 (0) | 2024.03.07 |
20240307 로그인 페이지 구현 (0) | 2024.03.07 |
20240307 가위바위보 페이지 (0) | 2024.03.07 |
20240306_주사위 출력 (0) | 2024.03.06 |