본문 바로가기

개발자노트/웹

JSP - JSP만을 이용한 계산기 예제1 + ( HTTP 상태 500 - 내부 서버 오류) (GET,POST)

주의할점 , 생각할 점

- 초기 페이지의 로딩 방식은 get 방식일 것이다.

- 만약 request와 로딩방식이 둘다 get이라면,

HTTP 상태 500 오류

- 이러한 오류가 발생하게 된다 (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>