47일차 2023-05-12
JSP
서블릿
was 서버들의 공통적인 디렉토리 구조
Context Root 하위 WEB-INF 하위에
Classes폴더(클래스 파일이 위치),
lib폴더(jar파일이 위치),
src폴더(java파일이 위치),
xml파일(설정 파일)
JSP 처리 과정
브라우저에서 jsp파일 요청->(서블릿 컨테이너) JSP페이지가 Java코드 생성->(DB서버 연결) ->(컴파일)->자바 소스코드로 서블릿 생성(.class)->.class파일로 html로 변환시켜서 웹 브라우저에 전달해서 클라이언트에 응답
(D:\CSH\Workspace\java\basic\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\JSPProj\org\apache\jsp
여기에서 HelloWorld_jsp.class 여기서 .class가 스레드로 작동)
JSP의 구성요소
지시어(Directive), 스크립팅 원소(Scripting Element)
<%@ %>
@에 커서 놓고 ctrl+space바
include , page, taglib
page지시어 종류: contentType, import, info, language, session, buffer, autoflush, errorPage, isErrorPage, pageEncoding
include 지시어: includePage.jsp 같은 파일을 만들어서 include지시어 만으로 사용가능
include의 file속성: 해당 페이지의 소스를 변경하지 않고 그대로 사용(include.jsp파일)
D:\CSH\Workspace\java\basic\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\JSPProj\org\apache\jsp
이건 서블릿 위치인데 .java와 .class파일이 여기 있다 근데 IncludeIndex_jsp.java, IncludeIndex_jsp.class 이런 식으로 있음
한마디로 include의 file속성은 이렇게 변경되지 않는다.
<%@ include file="포함할 파일 경로" %>
여기선 /include.jsp 이런 식으로
taglib은 나중에
스크립팅 원소 종류 3가지
선언부(declaration)
스크립트릿(scriptlet)
표현식(expression)
선언부:
형태: <%!자바코드%>
멤버변수,멤버메소드 선언하는 곳
스크립트릿:
형태:<%자바코드%>
표현식:
형태:<%=자바코드%>
jSP주석
HTML주석:<!-- -->
JSP주석:<%-- --%> 단축키는 ctrl+shift+c
Java Code주석:<% //한 줄 주석 %>, <% /*여러 줄 주석 */%>
프로젝트 파일 경로
ErrorIndex.jsp
ErrorInfo.jsp
IncludeIndex.jsp
IncludedPage.jsp
ScriptingBasic.jsp
UseInCSSL.jsp
Expression.jsp
ScriptExample.jsp
oracle을 연결하기 위해 webapp 하위 WEB-INF 하위 lib에 ojdbc6.jar파일 넣기
ScriptingExample.jsp