System.out.println("Hello, World");

리다이렉트(Redirect)방식

- 응답시 클라이언트에게 요청할 url을 알려주어 다시 요청하도록 하는 방식

- 요청과 응답이 한번 더 일어난다.

- Request Scope를 이용한 데이터(Attribute) 공유를 할 수 없다.

-HttpServletResponse 객체를 이용하여 처리




-구문

response.sendRedirect("url");

- 웹브라우저를 기준으로 해야 하기 때문에 절대경로를 쓰지 않는다.

 

<요청 리다이렉트 예제>

개요

 - 체크박스를 선택하면 정상적으로 화면이 출력된다.

 - 만약 체크박스를 선택하지 않았다면 error.jsp로 이동하여 에러화면이 출력된다.


Servlet

package : servlet.redirect

name : ErrorPronServlet

url :/error_pron


html

folder : /redirect/req.html

                 error.jsp


[ErrorPronServlet.java]


[req.html]


[error.jsp]


결과 화면

1. 체크를 선택했을 경우




2. 체크를 선택하지 않았을 경우



위 화면과 같이 출력되면 성공이다.


Posted by 김마농

Attribute(속성)

-Attribute(속성)이란?

Web Application 구성 컴포넌트들(Servlet,m JSP, Listener)이 공유하는 객체



-scope(적용영역)

- Attribute들을 공유하기 위한 공유 장소의 영역(저장장소)

- 공유 범위에 따라 3가지 영역이 있다.


1. requset scope : HttpServletRequest 이용

-요청 ~ 응답까지 공유


2. session scope : HttpSession 이용

-한명의 클라이언트(웹브라우저)가 로그인 ~ 로그아웃

3. application scope : ServletContext 이용

-Application 시작 ~ 종료시까지 공유


- 관련 메소드

Attribute는 key-value쌍으로 관리된다.

*setAttribute(String key, Object value) : 공유영역에 Attribute 저장 [Binding]


*getAttribute(String key) : Object value : 저장된 Attribute 조회 [lookup]


*removeAttribute(String key) : 저장된 Attribute 삭제


*getAttributeNames() : Enumeration : Attribute들에 연결된 name들 조회



<예제>

[SetAttributeServlet.java]


[GettAttributeServlet.java]


결과




Posted by 김마농

Event 모델

- Event : 컴포넌트에 가해진 동작, 변화

- Event Listenter

1. 컴포넌트에서 Event가 발생하는 것을 감시하는 Container.

2. 발생한 Event를 처리하는 동작을 가진 객체(Listener class)

- Event Handler : 발생한 Event를 처리하는 동작(메소드)

- Event Source : Event가 발생한 컴포넌트 

ex)버튼을 클릭하면 안녕이라고 출력한다.


Event Source : 버튼

Event : 클릭

Event Handler : 안녕을 출력하는 동작


ServletContextEvent

시작하고 종료될때 2번 생성된다.


<예제>

1. Listener를 다음과 같이 추가한다.


2. 패키지와 클래스 이름은 다음과 같이 작성해준다. 그리고 Next를 선택한다.


3. LiftCycle 체크박스를 체크를 해주고 Finish를 선택하여 완료한다. 


4. Listener코드는 다음과 같이 작성한다. 우리는 이 코드로 Listener가 언제언제 작동하는지 확인할 것이다.



5. 그리고 서버를 올리게 되면 contextInitialized가 작동하여 다음과 같이 출력된다.


6. 서버를 stop하면 contextDestroy가 작동하여 다음과 같이 출력한다.


Posted by 김마농