728x90
JSP
: Java Server Page
- 서버스크립트 (jsp, php, asp)
- 자바 웹 어플리케이션
- 브라우저 서비스(뷰)를 담당하는 한 페이지를 표현
- Servlet Container (Apache Tomcat)를 통해 실행
- HTML(Css,JavaScript)(클라이언트 스크립트/브라우저에서 실행)
- Java 코드(서버 스크립트/ JVM에서 실행)
JSP 실행절차
-
hello.jsp페이지 요청
⇒ http://ip:port/[ContextRoot(프로젝트명)]/경로/페이지명
⇒ http://localhost:8282/TomTest/0711/hello.jsp -
jsp 페이지 존재유무 ⇒ 없을시 404에러
-
매핑된 서블릿클래스 존재유무 ⇒ 없을시 생성
public class hello extends HttpServlet{ public void init(){} public void service(HttpServletRequest request, HttpServletResponse response){ out.print("JSP페이지에서 작성된 HTML"); } public void destroy(){} }
-
컴파일(hello.class) 유무 -----무----> 컴파일
-
메모리 적재 유무 ----무----> 메모리 로딩
-
최초 호출인 경우 init()메소드 호출
-
service()메소드 호출
JSP 기본태그
: JSP 페이지(.jsp) 내에서 자바코드를 식별하는 태그
//Declaraction(선언)
<%! %>
<%!
멤버요소 (전역변수선언, 선언과 동시에 초기화,메소드 정의)
int su;
int su2=100;
public void getMsg(){
return "Message";
} //비권장. 메소드는 클래스 안에 넣고 호출하는걸 권장
%>
//Scriptlet(실행)
<% %>
<%
service()메소드 안의 자바코드(지역변수선언, 변수초기화, 메소드호출,조건문 반복문,주석(//))
int su3;
int su4 = 40;
su = 10; //멤버변수 초기화
su3 = 30; //지역변수 초기화
if(조건식){}
for(반복문){}
System.out.println("mes");
%>
//Expression(표현식, 출력식)
<%= %>
<%=
브라우저에 출력하고자 하는 데이터 (데이터, 변수명, 연산자, 리턴메소드호출)
(서블릿코드에서 out.print(데이터); 변환)
%>
<%= 2+3 %>
<%= "안녕" %>
<%= su %>
<%= getMsg() %>
//Comment(주석,설명문)
<%-- --%>
주석 참고)
<!-- --> HTML 주석문
<!-- <%= new Date()> -->
// 자바코드가 실행되지만 브라우저상에는 주석처리되어 소스에서 볼수있음
자바스크립트 영역에서 사용
<script>
var str = "javascript";
</script>
<%= str %>
//자바스크립트 영역에 있던 값을 자바영역에서 사용불가
<%
int su=300
String str = "내일";
%>
<script>
document.write(<%= su %>); // 가능
document.write(<%= str %>); // 불가
document.write("<%= str %>"); // 가능
</script>
<body>
<%
int sum=50;
String name="gildong";
%>
<input type='text' name='username' value='<%= name%>'>
<script>
var str="홍길동";
document.write(str); (O)
document.write(sum); (X)
document.write(<%= sum %>); (O) document.write(50);
document.write(<%= name %>); (X) document.write(gildong);
document.write('<%= name %>'); (O) document.write('gildong');
var su=<%=sum%>; (O) var su=50;
document.write('이름='+ <%=name%>); (X) document.write('이름='+ gildong);
document.write('이름=<%=name%>'); (O) document.write('이름=gildong');
</script>
<%
out.print(str); (XX)
out.print('<script>document.write(str);</script>'); (O)
%>
</body>