* 본 글은 [뉴렉처]의 Servlet&JSP 프로그래밍 강의를 듣고 정리한 글입니다.
2020 Servlet&JSP 프로그래밍
www.youtube.com
상태 유지를 필요로 하는 경우와 구현의 어려움
- 웹 서버 프로그램은 애플리케이션이 조각나있음 > Servlet
- 전역변수 같은 개념을 갖고 있지 않은 조각난 서블릿 사이에서 전역변수처럼 값을 유지해야만 하는 게 필요하게 됨
- 입력 박스를 여러 개 둬서 값을 한 번에 입력받는 경우보단, 아래처럼 입력 박스 하나에 값을 여러 번 입력받는 경우가 보편적
- 첫 번째 값을 전송하고 ‘+‘ 버튼을 누르면 첫 번째 값은 저장됨
- 두 번째 값을 입력하고 ‘계산’ 버튼을 눌러 계산
- 어떤 버튼을 누르면 서블릿이 잠깐 올라왔다 내려가고 메모리에서 사라짐(죽음)
- 해당 서블릿이 갖고 있는 변수들이 다 의미 없어짐
- 사라지기 전에 전송한 값을 어딘가에 저장해놔야 함
- ‘계산’ 버튼을 눌렀을 때 다시 깨어난 서블릿이 이전에 저장해놓은 값을 가지고 계산
- 서블릿들 간에 값을 공유할 수 있는 타임캡슐 같은 것들이 필요
상태 유지를 위한 5가지 방법
- 서블릿들이 살았다 죽었다 하면서 이번 생에서 어딘가에 담아놓은 내용을 다음 생에 쓰게 되는데, 그 값들을 담아놓을 수 있는 공간 (서블릿이 죽어도 값들은 사라지지 않는)
- application
- session
- cookie
- 나중에 살펴볼 것들
- hidden input
- querystring
application, session, cookie 사용하기
- calc2.html
- calc.html을 복사+붙여넣기 해서 calc2.html 생성
- <form>의 action 값을 calc2로 변경
- 입력박스를 하나로 줄이기 + <label> 태그 수정
- 버튼 추가하기: +, -, =
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>계산기 웹 프로그램</title>
</head>
<body>
<form action="calc2" method="post">
<div>
<p>계산할 값을 입력하세요.</p>
</div>
<div>
<label>입력 : </label>
<input type="text" name="v"/>
</div>
<div>
<input type="submit" name="operator" value="+">
<input type="submit" name="operator" value="-">
<input type="submit" name="operator" value="=">
</div>
</form>
</body>
</html>
- Clac2.java
- Calc.java를 복사+붙여넣기 해서 Calc2.java 생성
- 매핑주소를 /calc2로 수정: @WebServlet("/calc2")
- > 다음 글로 이어짐
'☕ Java 웹 프로그래밍 > Servlet & JSP' 카테고리의 다른 글
[Servlet&JSP] Session 객체로 상태 값 저장하기 (+ Application 객체와의 차이점) (0) | 2023.06.01 |
---|---|
[Servlet&JSP] Application 객체로 상태 값 저장하기 (0) | 2023.05.29 |
[Servlet&JSP] 배열 형태로 입력 데이터 받기 (0) | 2023.05.28 |
[Servlet&JSP] 여러 개의 Submit 버튼 사용하기 (2) | 2023.05.28 |
[Servlet&JSP] 이클립스에서 클래스가 아닌, 서블릿으로 서블릿 만들기 (0) | 2023.05.26 |