Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

memo6759 님의 블로그

2025-11-14(서블릿, jsp 구조 파악, 스프링) 본문

HDC 학습일지

2025-11-14(서블릿, jsp 구조 파악, 스프링)

heewon09 2025. 11. 17. 19:53

6. 요청재지정(화면이동)

- 클라이언트가 최초 요청한 서블릿이 응답하지 않고(혹은 응답하더라도)

다른 web application(html,jsp,서블릿)이 응답되도록

서블릿 내부에서 재요청하는 것을 의미

- 서블릿에서 뷰를 분리하기 위해서 반드시 알아야 하는 개념

- MVC패턴을 적용하기 위해서 반드시 알아야 하는 개념

1) 요청재지정방법

- response객체의 sendRedirect를 이용하는 방법

- RequestDispatcher가 제공하는 forward : 서블릿에서 주로 사용,스프링에서는 default

- RequestDispatcher가 제공하는 include : jsp에서 주로 사용

 

2) 데이터공유

- 데이터를 서블릿에서 공유하고 분리된 뷰(응답화면)에서 꺼내서 써야하는데 html파일은 자바코드를 사용할 수 없다.

- 자바코드도 쓰고 html태그도 쓸 수 있는 jsp를 이용

- 데이터의 공유는 어디에 공유할 수 있는지 scope가 있다.(page, request,session,application이 있다.)

- 각각의 scope에 해당하는 객체가 존재하며 이 객체 내부에는 데이터를 공유할 수 있도록 공유메소드를 갖고 있다.

- request scope객체(ServletRequest)

- session scope객체(HttpSession)

① 데이터공유하기

scope객체.setAttribute("공유할 객체의 이름",공유할 객체)

-------------- ---------

공유명 자바에서 사용되는 모든 객체를 공유할 수 있다.

개발자마다 다른 객체를 공유할 수 있으므로 Object(다형성)

 

② 공유된 객체 꺼내기

=> 공유된 객체 타입이 Object이므로 실제 공유된 객체의 타입으로 casting해야 한다.

공유한객체의타입 변수 = (공유객체타입)scope객체.getAttribute("공유한 객체의 이름")

---------

공유될때 타입이 java.lang.Object이므로 꺼낼때 캐스팅해주어야 한다.

 

 

7. sendRedirect

[문법]

HttpServletResponse의 sendRedirect를 이용

response.sendRedirect("요청재지정될 web application path")

------------------------------

context부터 정의해야 한다.

 

- 최초 요청됐던 서블릿이 response하고 다시 재요청해서 실행하는 방법이므로 데이터를 공유할 수 없다.

- 로그인 아이디나 패스워드를 잘못입력한 경우 로그인 페이지를 다시 보여주기 위한 방법

- 스프링MVC는 기본이 forward

- 두 번의 요청이 처리되므로 요청재지정한 application의 path로 주소표시줄이 바뀐다.

---------------------

두 번째 요청된 application

 

 

8. forward

[문법]

RequestDispatcher rd = request.getRequestDispatcher("요청재지정할 web application path")

rd.forward(request객체,response객체) --------------------------------------

response하지 않고 한 번의 요청으로 서블릿과 jsp가 실행되므로

path는 context명은 뺴고 정의하기

 

- 가장 일반적으로 사용되는 방법

- 최초 요청으로 서블릿,jsp가 실행되므로 데이터 공유가 가능

- 한 번의 요청으로 모든 application이 실행되므로 주소표시줄이 첫 번째 요청된 path로 남아있다.

 

 

 

9. include

RequestDispatcher rd = request.getRequestDispatcher("요청재지정할 web application path")

rd.include(request객체,response객체) --------------------------------------

response하지 않고 한 번의 요청으로 서블릿과 jsp가 실행되므로

path는 context명은 뺴고 정의하기

 

- 최초 요청으로 서블릿,jsp가 실행되므로 데이터 공유가 가능

- 한 번의 요청으로 모든 application이 실행되므로 주소표시줄이 첫 번째 요청된 path로 남아있다.

- forward와의 차이점은 서블릿에서 jsp로 요청재지정하여 jsp가 실행되면 jsp의 실행결과를 가지고 다시 최초 요청된

서블릿으로 되돌아와서 서블릿이 response된다.

즉, 서블릿이 요청재지정된 jsp의 실행결과만 포함하는 개념

 

 

 

MVC 패턴 

  • view : html 화면
  • model : DTO, DAO 
  • Controller : severlet

'HDC 학습일지' 카테고리의 다른 글

2025-11-18(Spring)  (0) 2025.11.19
2025-11-17(Spring)  (1) 2025.11.17
2025-11-13(백엔드 - Servlet)  (0) 2025.11.13
2025-11-12(React -final)  (1) 2025.11.13
2025-11-11(react)  (0) 2025.11.12