주의할점 , 생각할 점
- 초기 페이지의 로딩 방식은 get 방식일 것이다.
- 만약 request와 로딩방식이 둘다 get이라면,
- 이러한 오류가 발생하게 된다 (500 에러는 대부분 로직상 문제이다.)
이유 : 코드를 상단부터 불러오기 때문에 ,
request 할 것이 없어서 변수,함수 등을 정의 할 수 없기 때문이다.
이때 사용자의 입력값을 전달해주는 POST방식일 때만 작동하게끔 바꾸면 되는데,
if(request.getMethod().equals("POST")) 를 한줄 추가해주면 된다.
--> ( request를 POST 방식일 때만 수행되게끔 ( 사용자의 입력값을 전달 받기 위해 ) )
또한 웹에서는 정보들이 모두 String 타입으로 관리가 되기 때문에 Integer.parseInt()를 사용해
형변환을 해서 수들을 계산해면 된다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% // 자바영역에 대한 변수,함수 등을 이렇게 사용
int result=0; // 초기화 필수
if(request.getMethod().equals("POST")){ // 초기 로딩은 get 방식이기 때문에 , request가 POST 방식이면 if문이 수행되게끔
int num1 = Integer.parseInt(request.getParameter("num1")); // 요청할껀데, 파라미터를 가져올것이다 ("num1") 로부터
int num2 = Integer.parseInt(request.getParameter("num2"));
String op = request.getParameter("op");
if(op.equals("+")){
result= num1+num2;
}
else if(op.equals("-")){
result= num1-num2;
}
else if(op.equals("x")){
result= num1*num2;
}
else if(op.equals("/")){
result= num1/num2;
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>계산기 -1</title>
</head>
<body>
<h1>계산기</h1>
<hr>
<form method="post">
<input type="text" name="num1">
<select name="op">
<option>+</option>
<option>-</option>
<option>x</option>
<option>/</option>
</select>
<input type="text" name="num2">
<input type="submit" value="계산결과보기">
</form>
<hr>
<h2>계산결과 : <%= result %></h2>
</body>
</html>
'개발자노트 > 웹' 카테고리의 다른 글
JSP - Servlet +HTML을 사용한 계산기예제 -3 (0) | 2022.08.01 |
---|---|
JSP - Bean 설명과 request 객체설명, 이를 이용한 계산기 예제 (0) | 2022.08.01 |
JSP - import, JSP 주석, JAVA를 HTML에서 사용하기 (0) | 2022.08.01 |
JSP 전체 동작 과정 (0) | 2022.08.01 |
JSP 지시어 [<%@%>] (0) | 2022.08.01 |