[에러 발생 상황]
500에러, 즉 5로 시작하는 오류는
서버측 오류로, 개발자가 잘못한 것이다.
> 즉 코드가 이상한 것!!

콘솔 화면을 보면 아래와 같이
NullPointerException이 발생했다!!!

CalcBean 클래스의 10행에서 오류가 났음을 확인할 수 있는데.
어떤 주어가 Null이 발생했는지 코드를 함께 확인해보자.
▼ 기존 jsp코드 (오류 발생)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean class="test.CalcBean" id="cb" />
<jsp:setProperty property="*" name="cb"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 실습 02</title>
</head>
<body>
<%
//CalcBean cb = new CalcBean();
//이렇게 생성해주는 태그가 있는데
//이를 jsp 맥션 태그라고 부른다.
cb.calc();
%>
<h1>계산기</h1>
<hr>
<form method="POST">
<input type="text" name="num1">
<select name="op">
<option>+</option>
<option>-</option>
</select>
<input type="text" name="num2">
<input type="submit" name="계산하기">
</form>
<br>
<h3>계산결과 : <jsp:getProperty property="result" name="cb"/></h3>
<h3>계산결과 : <%=cb.getResult() %></h3>
</body>
</html>
오류가 발생한 jsp 코드를 보면 body문 시작 부분에서
cb.calc()를 호출하고 있는데 해당 메서드에 들어갈 인자는
사실 <form method = "POST"> 를 통해 발생하는 결과물이다.
그래서 결과물이 발생하기 전(=null)에 calc를 호출하게 되는데
▼ 기존 class코드 (오류 발생)
public class CalcBean {
private int num1;
private int num2;
private String op;
private int result;
public void calc() {
if(op.equals("+")){
result = num1 + num2;
} else{
result = num1 - num2;
}
}
모두 null인 상태로 calc 메서드를 진행하게 되고
첫 번째 if문 op.equals가 null인 상태로 진행되어
오류가 발생되는 것을 확인할 수 있었다.
이를 해결하기 위해서 메서드 안에 널이라면
계산 결과가 0인 상태라는 코드가 필요하다.
if(op==null) {
result = 0;
return;}
이와 같은 제어문 코드를 상단에
추가해주면 오류가 해결된다.
▼ 오류 해결 부분
public class CalcBean {
private int num1;
private int num2;
private String op;
private int result;
public void calc() {
if(op==null) {
result = 0;
return;
}
if(op.equals("+")){
result = num1 + num2;
}
else{
result = num1 - num2;
}
}

'개주 훈련일지 > 🔥 히노카미 코구라(오류 수정)' 카테고리의 다른 글
| 오류내역) Failed to load resource: the server responded with a status of 404 () (0) | 2025.11.27 |
|---|---|
| 오류내역) 에러 발생 시 예외처리하기 (0) | 2025.11.17 |
| 오류내역) HTTP 상태 404 – 찾을 수 없음 (0) | 2025.11.14 |
| 오류내역) HTTP 상태 404 – 찾을 수 없음 (0) | 2025.11.13 |
| 오류내역) SQLIntegrityConstraintViolationException (1) | 2025.11.10 |