SlideShare a Scribd company logo
1 of 21
Download to read offline
To be JSP 
7장
JSP 
MVC 아키텍쳐에서 View단을 맡고 있다. 
! 
request.setAttribute("styles", result); 
RequestDispatcher view = 
request.getRequestDispatcher(“result.jsp"); 
view.forward(request, resp); 
이 과정에서 jsp파일을 세팅해주고 
목적지로 forward시킨다. 즉 redirect시킴
In JSP 
• 그러면 JSP는 내부적으로 어떻게 동작하는가?
JSP Code Problem 
<title>View</title> 
</head> 
<body> 
The page count is : 
<% 
out.println(Counter.getCount()); 
%> 
package 가 없다!!!! 
! 
</body> 
</html>
JSP Code Problem 
JSP 코드 앞에 패키지를 넣어 주면 된다. 
foo.Counter.getCount(); 
근데 이건 너무 귀찮다! 자바처럼 import할 방법이 없을까?
지시자(directive) 
• 지시자는 컨테이너가 페이지를 자바 코드로 변환할 시에 특 
별한 지시를 내릴 수 있다. 
• page, include, taglib이 있다. 
! 
<%@ page import=“foo.*, java.util.*” %> 
여러 개를 import하는 것도 가능
out.println 
out.println(Counter.getCount()); 
! 
이것도 너무 귀찮다. 계속 out객체를 이용하고 싶지 않다. 
그리고 웹 디자이너들은 자바를 잘 모른다. 
다른 문법이 없을까? 
! 
!
JSP 표현식(expression) 
<%= Counter.getCount()%> 
! 
이걸 사용하면 자동으로 out 객체로 println을 시행해줌 
out.println(Counter.getCount());랑 같은 거니까 
당연히 끝에는 세미콜론(;)이 없어야겠죠?
지역변수 
<% %> : 스크립틀릿을 사용하면 호출할때마다 변수가 초기 
화된다. 지역변수기 때문에 
인스턴스 변수로 만들 수 있을까?
선언문(declaration) 
<%! int count = 0 %> 
이렇게 선언하면 인스턴스 변수로 값이 할당됨.
Convert to Servlet 
지시자를 확인한다(<%@ %>) 
HttpServlet 의 하위 클래스를 생성한다 
page 지시자가 있으면, 패키지 선언 아래애 import 문을 넣는다 
service() 메소드를 만든다.
내장 객체 
• JSP가 서블릿이 되기 때문에 서블릿의 내장 객체를 이용할 
수 있다. 
• API와 내장 객체 매핑은 책을 참조 || 검색하는 걸로!
JSP LifeTime 
• JSP파일을 저장해서 배포한다 
• 사용자가 jsp파일을 요청한다. 
• jsp가 컴파일되어 .class파일로 변환된다. 
• jsp가 서블릿으로 변환되고, 컨테이너가 인스턴스화한다. 
• 요청이 들어올때마다 _jspService() 메소드를 실행한다.
초기화 
• jsp는 서블릿으로 변환되니 당연히 초기화도 할 수 있고, 재 
정의도 할 수 있다. 
• 초기화는 <servlet-class>태그가 아닌 <jsp-file>태그를 
이용한다.
속성 체크 
• jsp 내에서 내장 객체를 이용하여 서블릿처럼 각각의 컨텍 
스트에 접근할 수 있다. 
• Application, Request, Session에 접근 가능하다. 
• 그런데 Page라는 다른 컨텍스트가 존재한다.
Page 
• PageContext는 자기 자신에게 설정되어 있는 Page속성 
뿐만 아니라 다른 생존범위 속성에도 접근할 수 있다. 
• PageContext를 이용하여 Session, application 생존 
범위 내에 값을 세팅하고, 읽어올 수 있다.
<% %> 
• 스크립틀릿은 자바 코드이다. 
• 웹 디자이너들은 프로그래머가 아니므로, 자바 코드를 이해 
할 수 없다. 
• 어쩌지?
EL 
• EL은 Expression Language의 약자며, 스크립틀릿이나 
표현식으로 했던 작업들을 할 수 있다. 
• 코드를 짜는 것이 아니라, 다른 데서 짜 놓은 코드를 EL을 
가지고 호출할 수 있다.
EL 
• ${applicationScope.mail} == 
<%= application.getAttribute(“mail”) %>
EL 
• 그러나 항상 EL이 좋은 것은 아니다. 코드 중에 EL이 사용 
된 것처럼 착각할 수 있는 코드가 존재할 수 있다. 
• 그럴 땐 EL을 사용할 수 없게 만들어야 한다. 
• DD에서 세팅하는 방법과, page 지시자 속성을 이용하는 
방법이 있음. 
• 항상 page 지시자가 우선함(둘 다 세팅했을 경우에는)
Action 
• 표준 액션 :<jsp:include page=“wickedFooter.jsp”/> 
• 기타 액션 :<c:set var=“rate” value=“32” /> 
• 자세한 건 다음 장에서

More Related Content

What's hot

자바 웹 개발 시작하기 (10주차 : ㅌㅗㅇ ㅎㅏ ㄹㅏ)

자바 웹 개발 시작하기 (10주차 : ㅌㅗㅇ ㅎㅏ ㄹㅏ)
자바 웹 개발 시작하기 (10주차 : ㅌㅗㅇ ㅎㅏ ㄹㅏ)

자바 웹 개발 시작하기 (10주차 : ㅌㅗㅇ ㅎㅏ ㄹㅏ)
DK Lee
 
자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (4주차 : MVC)자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (4주차 : MVC)DK Lee
 
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기Gyutae Jo
 
20 handler and_async_task
20 handler and_async_task20 handler and_async_task
20 handler and_async_task운용 최
 
[D2CAMPUS]JavaScript 다시 시작하기
[D2CAMPUS]JavaScript 다시 시작하기[D2CAMPUS]JavaScript 다시 시작하기
[D2CAMPUS]JavaScript 다시 시작하기NAVER D2
 
테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기cho hyun jong
 
Why javaScript?
Why javaScript?Why javaScript?
Why javaScript?Kim Hunmin
 
React.js 세미나
React.js 세미나React.js 세미나
React.js 세미나Boram Kim
 
React.js 세미나
React.js 세미나React.js 세미나
React.js 세미나Briantina
 
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)DK Lee
 
KSUG 스프링캠프 2017 발표자료
KSUG 스프링캠프 2017 발표자료KSUG 스프링캠프 2017 발표자료
KSUG 스프링캠프 2017 발표자료용근 권
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.jsJinKwon Lee
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Kim Hunmin
 
[웹기반시스템 3조] mvc
[웹기반시스템 3조] mvc[웹기반시스템 3조] mvc
[웹기반시스템 3조] mvc구 봉
 

What's hot (20)

자바 웹 개발 시작하기 (10주차 : ㅌㅗㅇ ㅎㅏ ㄹㅏ)

자바 웹 개발 시작하기 (10주차 : ㅌㅗㅇ ㅎㅏ ㄹㅏ)
자바 웹 개발 시작하기 (10주차 : ㅌㅗㅇ ㅎㅏ ㄹㅏ)

자바 웹 개발 시작하기 (10주차 : ㅌㅗㅇ ㅎㅏ ㄹㅏ)

 
자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (4주차 : MVC)자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (4주차 : MVC)
 
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
 
Presentation1
Presentation1Presentation1
Presentation1
 
20 handler and_async_task
20 handler and_async_task20 handler and_async_task
20 handler and_async_task
 
[D2CAMPUS]JavaScript 다시 시작하기
[D2CAMPUS]JavaScript 다시 시작하기[D2CAMPUS]JavaScript 다시 시작하기
[D2CAMPUS]JavaScript 다시 시작하기
 
테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기
 
Why javaScript?
Why javaScript?Why javaScript?
Why javaScript?
 
React.js 세미나
React.js 세미나React.js 세미나
React.js 세미나
 
React.js 세미나
React.js 세미나React.js 세미나
React.js 세미나
 
03 jsx
03 jsx03 jsx
03 jsx
 
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
 
KSUG 스프링캠프 2017 발표자료
KSUG 스프링캠프 2017 발표자료KSUG 스프링캠프 2017 발표자료
KSUG 스프링캠프 2017 발표자료
 
Webpack&babel
Webpack&babelWebpack&babel
Webpack&babel
 
Web_07_Rails Advanced
Web_07_Rails AdvancedWeb_07_Rails Advanced
Web_07_Rails Advanced
 
jQuery 구조와 기능
jQuery 구조와 기능jQuery 구조와 기능
jQuery 구조와 기능
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js
 
Web_05_ jQuery
Web_05_ jQueryWeb_05_ jQuery
Web_05_ jQuery
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
[웹기반시스템 3조] mvc
[웹기반시스템 3조] mvc[웹기반시스템 3조] mvc
[웹기반시스템 3조] mvc
 

Viewers also liked

코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다Han Sung Kim
 
Web server page_ed10
Web server page_ed10Web server page_ed10
Web server page_ed10hungrok
 
비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)
비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)
비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)daumfoundation
 
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호daumfoundation
 
Een digitale bibliotheek of alleen Google?
Een digitale bibliotheek of alleen Google?Een digitale bibliotheek of alleen Google?
Een digitale bibliotheek of alleen Google?Eric Sieverts
 
(120616) #fitalk web browser forensics - part iii
(120616) #fitalk   web browser forensics - part iii(120616) #fitalk   web browser forensics - part iii
(120616) #fitalk web browser forensics - part iiiINSIGHT FORENSIC
 
IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10hungrok
 
Java advancd ed10
Java advancd ed10Java advancd ed10
Java advancd ed10hungrok
 
스프링 트러블슈팅
스프링 트러블슈팅스프링 트러블슈팅
스프링 트러블슈팅Keesun Baik
 
2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case
2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case
2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Casedaumfoundation
 
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
(140118) #fitalk   detection of anti-forensics artifacts using ioa fs(140118) #fitalk   detection of anti-forensics artifacts using ioa fs
(140118) #fitalk detection of anti-forensics artifacts using ioa fsINSIGHT FORENSIC
 
(150124) #fitalk advanced $usn jrnl forensics (english)
(150124) #fitalk   advanced $usn jrnl forensics (english)(150124) #fitalk   advanced $usn jrnl forensics (english)
(150124) #fitalk advanced $usn jrnl forensics (english)INSIGHT FORENSIC
 
(150124) #fitalk advanced $usn jrnl forensics (korean)
(150124) #fitalk   advanced $usn jrnl forensics (korean)(150124) #fitalk   advanced $usn jrnl forensics (korean)
(150124) #fitalk advanced $usn jrnl forensics (korean)INSIGHT FORENSIC
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11hungrok
 
[거의 모든 인터넷의 역사, 그리고 미래 - 정지훈
[거의 모든 인터넷의 역사, 그리고 미래 - 정지훈[거의 모든 인터넷의 역사, 그리고 미래 - 정지훈
[거의 모든 인터넷의 역사, 그리고 미래 - 정지훈daumfoundation
 
2013 꿈다락 토요문화학교 유스보이스 8경 캐릭터 설정 자료집
2013 꿈다락 토요문화학교 유스보이스 8경 캐릭터 설정 자료집2013 꿈다락 토요문화학교 유스보이스 8경 캐릭터 설정 자료집
2013 꿈다락 토요문화학교 유스보이스 8경 캐릭터 설정 자료집daumfoundation
 
SoftLayer에서 VM 생성해보기!
SoftLayer에서 VM 생성해보기!SoftLayer에서 VM 생성해보기!
SoftLayer에서 VM 생성해보기!IBM Korea
 
Servlet design pattern
Servlet design patternServlet design pattern
Servlet design patternSukjin Yun
 
SoftLayer에서 웹 애플리케이션 호스팅하기 - WordPress on SoftLayer
SoftLayer에서 웹 애플리케이션 호스팅하기 - WordPress on SoftLayerSoftLayer에서 웹 애플리케이션 호스팅하기 - WordPress on SoftLayer
SoftLayer에서 웹 애플리케이션 호스팅하기 - WordPress on SoftLayerIBM Korea
 

Viewers also liked (20)

코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다
 
Web server page_ed10
Web server page_ed10Web server page_ed10
Web server page_ed10
 
비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)
비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)
비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)
 
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
 
Een digitale bibliotheek of alleen Google?
Een digitale bibliotheek of alleen Google?Een digitale bibliotheek of alleen Google?
Een digitale bibliotheek of alleen Google?
 
(120616) #fitalk web browser forensics - part iii
(120616) #fitalk   web browser forensics - part iii(120616) #fitalk   web browser forensics - part iii
(120616) #fitalk web browser forensics - part iii
 
IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10
 
Java advancd ed10
Java advancd ed10Java advancd ed10
Java advancd ed10
 
스프링 트러블슈팅
스프링 트러블슈팅스프링 트러블슈팅
스프링 트러블슈팅
 
2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case
2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case
2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case
 
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
(140118) #fitalk   detection of anti-forensics artifacts using ioa fs(140118) #fitalk   detection of anti-forensics artifacts using ioa fs
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
 
(150124) #fitalk advanced $usn jrnl forensics (english)
(150124) #fitalk   advanced $usn jrnl forensics (english)(150124) #fitalk   advanced $usn jrnl forensics (english)
(150124) #fitalk advanced $usn jrnl forensics (english)
 
(150124) #fitalk advanced $usn jrnl forensics (korean)
(150124) #fitalk   advanced $usn jrnl forensics (korean)(150124) #fitalk   advanced $usn jrnl forensics (korean)
(150124) #fitalk advanced $usn jrnl forensics (korean)
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11
 
Server
ServerServer
Server
 
[거의 모든 인터넷의 역사, 그리고 미래 - 정지훈
[거의 모든 인터넷의 역사, 그리고 미래 - 정지훈[거의 모든 인터넷의 역사, 그리고 미래 - 정지훈
[거의 모든 인터넷의 역사, 그리고 미래 - 정지훈
 
2013 꿈다락 토요문화학교 유스보이스 8경 캐릭터 설정 자료집
2013 꿈다락 토요문화학교 유스보이스 8경 캐릭터 설정 자료집2013 꿈다락 토요문화학교 유스보이스 8경 캐릭터 설정 자료집
2013 꿈다락 토요문화학교 유스보이스 8경 캐릭터 설정 자료집
 
SoftLayer에서 VM 생성해보기!
SoftLayer에서 VM 생성해보기!SoftLayer에서 VM 생성해보기!
SoftLayer에서 VM 생성해보기!
 
Servlet design pattern
Servlet design patternServlet design pattern
Servlet design pattern
 
SoftLayer에서 웹 애플리케이션 호스팅하기 - WordPress on SoftLayer
SoftLayer에서 웹 애플리케이션 호스팅하기 - WordPress on SoftLayerSoftLayer에서 웹 애플리케이션 호스팅하기 - WordPress on SoftLayer
SoftLayer에서 웹 애플리케이션 호스팅하기 - WordPress on SoftLayer
 

Similar to Jsp convert to Servlet

자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)DK Lee
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 
JSP 프로그래밍 #04 JSP 의 기본
JSP 프로그래밍 #04 JSP 의 기본JSP 프로그래밍 #04 JSP 의 기본
JSP 프로그래밍 #04 JSP 의 기본Myungjin Lee
 
WAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apmWAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apm엑셈
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)NAVER D2
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자바교육추천]자바웹기초와스프링프레임워크마이바티스재직자향상과정_자바학원/스프링학원/마이바티스/자바/웹기초/IT학원추천
[자바교육추천]자바웹기초와스프링프레임워크마이바티스재직자향상과정_자바학원/스프링학원/마이바티스/자바/웹기초/IT학원추천[자바교육추천]자바웹기초와스프링프레임워크마이바티스재직자향상과정_자바학원/스프링학원/마이바티스/자바/웹기초/IT학원추천
[자바교육추천]자바웹기초와스프링프레임워크마이바티스재직자향상과정_자바학원/스프링학원/마이바티스/자바/웹기초/IT학원추천탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Collaboration with Eclipse final
Collaboration with Eclipse finalCollaboration with Eclipse final
Collaboration with Eclipse finalKenu, GwangNam Heo
 
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기Myungjin Lee
 
Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료ssuser776e2d
 
Sql 중심 코드 탈피
Sql 중심 코드 탈피Sql 중심 코드 탈피
Sql 중심 코드 탈피ssuser776e2d
 
1주차 자기개발 항목(jsp 컴파일)
1주차 자기개발  항목(jsp 컴파일)1주차 자기개발  항목(jsp 컴파일)
1주차 자기개발 항목(jsp 컴파일)brain816
 
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Choonghyun Yang
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)DK Lee
 

Similar to Jsp convert to Servlet (20)

자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
JSP 프로그래밍 #04 JSP 의 기본
JSP 프로그래밍 #04 JSP 의 기본JSP 프로그래밍 #04 JSP 의 기본
JSP 프로그래밍 #04 JSP 의 기본
 
WAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apmWAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apm
 
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
 
[자바교육추천]자바웹기초와스프링프레임워크마이바티스재직자향상과정_자바학원/스프링학원/마이바티스/자바/웹기초/IT학원추천
[자바교육추천]자바웹기초와스프링프레임워크마이바티스재직자향상과정_자바학원/스프링학원/마이바티스/자바/웹기초/IT학원추천[자바교육추천]자바웹기초와스프링프레임워크마이바티스재직자향상과정_자바학원/스프링학원/마이바티스/자바/웹기초/IT학원추천
[자바교육추천]자바웹기초와스프링프레임워크마이바티스재직자향상과정_자바학원/스프링학원/마이바티스/자바/웹기초/IT학원추천
 
Collaboration with Eclipse final
Collaboration with Eclipse finalCollaboration with Eclipse final
Collaboration with Eclipse final
 
Basic.pptx
Basic.pptxBasic.pptx
Basic.pptx
 
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
 
Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료
 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
 
스프링 배치
스프링 배치 스프링 배치
스프링 배치
 
Sql 중심 코드 탈피
Sql 중심 코드 탈피Sql 중심 코드 탈피
Sql 중심 코드 탈피
 
1주차 자기개발 항목(jsp 컴파일)
1주차 자기개발  항목(jsp 컴파일)1주차 자기개발  항목(jsp 컴파일)
1주차 자기개발 항목(jsp 컴파일)
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 

Jsp convert to Servlet

  • 1. To be JSP 7장
  • 2. JSP MVC 아키텍쳐에서 View단을 맡고 있다. ! request.setAttribute("styles", result); RequestDispatcher view = request.getRequestDispatcher(“result.jsp"); view.forward(request, resp); 이 과정에서 jsp파일을 세팅해주고 목적지로 forward시킨다. 즉 redirect시킴
  • 3. In JSP • 그러면 JSP는 내부적으로 어떻게 동작하는가?
  • 4. JSP Code Problem <title>View</title> </head> <body> The page count is : <% out.println(Counter.getCount()); %> package 가 없다!!!! ! </body> </html>
  • 5. JSP Code Problem JSP 코드 앞에 패키지를 넣어 주면 된다. foo.Counter.getCount(); 근데 이건 너무 귀찮다! 자바처럼 import할 방법이 없을까?
  • 6. 지시자(directive) • 지시자는 컨테이너가 페이지를 자바 코드로 변환할 시에 특 별한 지시를 내릴 수 있다. • page, include, taglib이 있다. ! <%@ page import=“foo.*, java.util.*” %> 여러 개를 import하는 것도 가능
  • 7. out.println out.println(Counter.getCount()); ! 이것도 너무 귀찮다. 계속 out객체를 이용하고 싶지 않다. 그리고 웹 디자이너들은 자바를 잘 모른다. 다른 문법이 없을까? ! !
  • 8. JSP 표현식(expression) <%= Counter.getCount()%> ! 이걸 사용하면 자동으로 out 객체로 println을 시행해줌 out.println(Counter.getCount());랑 같은 거니까 당연히 끝에는 세미콜론(;)이 없어야겠죠?
  • 9. 지역변수 <% %> : 스크립틀릿을 사용하면 호출할때마다 변수가 초기 화된다. 지역변수기 때문에 인스턴스 변수로 만들 수 있을까?
  • 10. 선언문(declaration) <%! int count = 0 %> 이렇게 선언하면 인스턴스 변수로 값이 할당됨.
  • 11. Convert to Servlet 지시자를 확인한다(<%@ %>) HttpServlet 의 하위 클래스를 생성한다 page 지시자가 있으면, 패키지 선언 아래애 import 문을 넣는다 service() 메소드를 만든다.
  • 12. 내장 객체 • JSP가 서블릿이 되기 때문에 서블릿의 내장 객체를 이용할 수 있다. • API와 내장 객체 매핑은 책을 참조 || 검색하는 걸로!
  • 13. JSP LifeTime • JSP파일을 저장해서 배포한다 • 사용자가 jsp파일을 요청한다. • jsp가 컴파일되어 .class파일로 변환된다. • jsp가 서블릿으로 변환되고, 컨테이너가 인스턴스화한다. • 요청이 들어올때마다 _jspService() 메소드를 실행한다.
  • 14. 초기화 • jsp는 서블릿으로 변환되니 당연히 초기화도 할 수 있고, 재 정의도 할 수 있다. • 초기화는 <servlet-class>태그가 아닌 <jsp-file>태그를 이용한다.
  • 15. 속성 체크 • jsp 내에서 내장 객체를 이용하여 서블릿처럼 각각의 컨텍 스트에 접근할 수 있다. • Application, Request, Session에 접근 가능하다. • 그런데 Page라는 다른 컨텍스트가 존재한다.
  • 16. Page • PageContext는 자기 자신에게 설정되어 있는 Page속성 뿐만 아니라 다른 생존범위 속성에도 접근할 수 있다. • PageContext를 이용하여 Session, application 생존 범위 내에 값을 세팅하고, 읽어올 수 있다.
  • 17. <% %> • 스크립틀릿은 자바 코드이다. • 웹 디자이너들은 프로그래머가 아니므로, 자바 코드를 이해 할 수 없다. • 어쩌지?
  • 18. EL • EL은 Expression Language의 약자며, 스크립틀릿이나 표현식으로 했던 작업들을 할 수 있다. • 코드를 짜는 것이 아니라, 다른 데서 짜 놓은 코드를 EL을 가지고 호출할 수 있다.
  • 19. EL • ${applicationScope.mail} == <%= application.getAttribute(“mail”) %>
  • 20. EL • 그러나 항상 EL이 좋은 것은 아니다. 코드 중에 EL이 사용 된 것처럼 착각할 수 있는 코드가 존재할 수 있다. • 그럴 땐 EL을 사용할 수 없게 만들어야 한다. • DD에서 세팅하는 방법과, page 지시자 속성을 이용하는 방법이 있음. • 항상 page 지시자가 우선함(둘 다 세팅했을 경우에는)
  • 21. Action • 표준 액션 :<jsp:include page=“wickedFooter.jsp”/> • 기타 액션 :<c:set var=“rate” value=“32” /> • 자세한 건 다음 장에서