서블릿을 이용한 환율 계산기 예제 실습
1. sec02.ex01 패키지에 ClacServlet 클래스를 생성합니다.
package sec02.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/calc")
public class CalcServlet extends HttpServlet {
private static float USD_RATE = 1124.70F;
private static float JPY_RATE = 10.113F;
private static float CNY_RATE = 163.30F;
private static float GBP_RATE = 1444.35F;
private static float EUR_RATE = 1295.97F;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter pw = response.getWriter();
String command = request.getParameter("command");
String won = request.getParameter("won");
String operator = request.getParameter("operator");
if (command != null && command.equals("calculate")) {
String result = calculate(Float.parseFloat(won), operator);
pw.print("<html><font size=10>변환결과</font><br>");
pw.print("<html><font size=10>" + result + "</font><br>");
pw.print("<a href='/pro06/calc'>환율 계산기</a>");
return;
}
pw.print("<html><title>환율 계산기</title>");
pw.print("<font size=5>환율 계산기</font><br>");
pw.print("<form name='frmCalc' method='get' action='/pro06/calc' /> ");
pw.print("원화: <input type='text' name='won' size=10 /> ");
pw.print("<select name='operator' >");
pw.print("<option value='dollar'>달러</option>");
pw.print("<option value='en'>엔화</option>");
pw.print("<option value='wian'>위안</option>");
pw.print("<option value='pound'>파운드</option>");
pw.print("<option value='euro'>유로</option>");
pw.print("</select>");
pw.print("<input type='hidden' name='command' value='calculate' /> ");
pw.println("<input type='submit' value='변환' />");
pw.println("</form>");
pw.print("</html>");
pw.close();
}
private static String calculate(float won, String operator) {
String result = null;
if (operator.equals("dollar")) {
result = String.format("%.6f", won / USD_RATE);
} else if (operator.equals("en")) {
result = String.format("%.6f", won / JPY_RATE);
} else if (operator.equals("wian")) {
result = String.format("%.6f", won / CNY_RATE);
} else if (operator.equals("pound")) {
result = String.format("%.6f", won / GBP_RATE);
} else if (operator.equals("euro")) {
result = String.format("%.6f", won / EUR_RATE);
}
return result;
}
}
<input> 태그를 hidden 속성으로 지정하면 화면에는 보이지 않지만 value에 이미 값이 저장되어 있습니다. 따라서 계산기 화면에서 서블릿으로 어떤 기능을 수행할지 명령을 전달할 수 있습니다. <hidden> 태그는 자주 사용됩니다.
3. 웹 브라우저에서 http:// localhost:8090/pro06/calc로 요청한 후 원화에 값을 입력하고 변환을 클릭합니다.

4. 값을 전송한 후 결과를 웹 브라우저에 출력합니다.

'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| GET 방식과 POST 방식 요청 동시에 처리하기 (0) | 2025.05.12 |
|---|---|
| 웹 브라우저에서 서블릿으로 데이터 전송하기 (0) | 2025.05.09 |
| HttpServletResponse를 이용한 서블릿 응답 실습 (1) | 2025.05.03 |
| 서블릿의 응답 처리 방법 & MIME-TYPE (1) | 2025.04.30 |
| getParameterNames() 메서드를 이용한 요청 관리 (1) | 2025.04.27 |