jsp 파일은 연산용이 아니다 (∵ 재사용x)
본격적인 연산은 따로 클래스 파일을 만들어 처리한다
<%@ page buffer="4kb" autoFlush="false" %>
buffer="none"
지정
- jar : java application archive
자바 소스 배포에 사용
http://localhost:8080/04_20/hello.jsp
D:\java\오전\env\apache-tomcat-6.0.53\webapps\04_20\hello.jsp
이클립스에서 서버 구동의 의미.
서버.xml도 있고 여러 설정 파일들이 많은데 옛날에는 서버 설정을 바꾸고 실행하기 위해서 예를 들어 포트 번호를 바꾸려 할때 물리적인 톰캣 설정을 바꿔야 함
이클립스에서는 톰캣을 쓰긴 쓰는데 이클립스 안에서 톰캣 설정을 따로 두어서 그 설정으로 톰캣을 구동할 수 있게 함. 물리적 톰캣 설정 바꾸지 않음. 마음대로 설정을 바꿔가며 톰캣을 실행시키기 편함.
clear()
, clearBuffer()
는 우리가 잘 사용하지 않음ServletRequest > HttpServletRequest (상속)
jsp에서 getRequest, getResponse는 사용 안함 (기본객체니까)
서블릿 할 때 사용
<welcome-file-list>
: web.xml에서 ROOT 접속시 보여줄 페이지 지정<context-param>
: web.xml에 초기화 파라미터를 추가<param-name>
로 이름 지정, <param-value>
로 값 지정web.xml = 배포서술자 [DD, Deploy Descriptor]
- 웹 어플리케이션 설정 정보를 담고있는 파일
[웹어플리케이션폴더]\WEB-INF
에 있어야 한다- 서블릿 3.0부터 어노테이션(of Java)으로 대체가능
but 본격적으로 쓰려면 어차피 만들어야 함- xml 사용 참고
예를 들어 경로와 파일 이름 따로 저장
경로-파일명 따로 분리할 때 이후 경로나 파일 변경할 때 수정사항이 적어짐
또한, xml은 컴파일x => 검증x => 오타 있어도 체크되지 않음
getInitParameter(String name)
: return StringgetInitParameterNames()
: return Enumeration<String>getServerInfo()
: return StringgetMajorVersion()
: return StringgetMinorVersion()
: return StringMajorVersion vs. MinorVersion
ex) 서블릿 3.1 에서 3이 MajorVersion(큰 변화), 1이 MinorVersion(작은 변화)
log(String msg)
: return voidlog(String msg, Throwable throwable)
: return void대형 프로그램에서는 log도 중요한 부분
/
: ROOT 경로
(디스크상의 경로x 어플리케이션 내부 경로)
(상대경로x 절대경로)
이클립스 상에서 파일의 실제 경로를 요청하면 '이클립스가 관리하는 복사본 위치'가 나옴
개발하면서 알 수 있는 것은 contextPath뿐
앞으로는 대부분 어플리케이션 내부 경로를 사용
getRealPath(String 내부경로)
: return String (실제 디스크상의 경로)getResource(String 내부경로)
: return URL (-> url.openStream() 스트림 얻기 가능)getResourceAsStream(String 내부경로)
: return InputStream (파일에 연결된 스트림)어플리케이션 만들 때 주 저장 정보는 DB, 프로그램 동작에 관한 정보는 외부파일(Properties)로 저장
(외부파일 = 컴파일 필요없음 = 변경이 편리)
IOC 참고
어떻게 해야하는지에 대한 통제권을 또 다른 프로그램에 준다
통제권 - Lib/Framework - 접근방식을 정의