JSP 스크립트 요소
Jsp에서는 총 4가지의 스크립트 요솔를 가진다. 선언문, 스크립트릿, 표현식, 주석 으로 되어 있다.
선언문 <%! 변수 및 메소드를 선언하는 영역이다. %>
선언문에서 선언된 변수는 jsp페이지가 파싱이되면 servlet의 멤버변수가 된다.
선언문에서 선언되 메소드는 jsp 페이지 내에서는 일반적인 메소드로 선언된다.
전역 변수 및 전역 함수로 사용된다.
스크립트릿 <%스크립트릿을 선언하는 영역이다.%>
지역변수로 반드시 초기화를 해주어야 한다.
표현식 <%=변수 혹은 메소드%>
동적인 jsp파일 부분을 브라우저로 표현을 하기 위한 코드 부분이다.
변수의 값을 출력하거나 메소드의 결과값을 가져올수 있다.
삼항 연산자는 조건 검사의 결과값을 반환하기 때문에 표현식에서 사용할 수가 있다.
주석 <%--소스분석에 대한 설명--%>
조건문 - if(조건){처리부}else if(조건){처리부} else {처리부}
Equals와 "="의 차이는 equals는 객체의 내용이 같은지, "="는 객체가 같은지 비교를 한다.
반복문에는 for문과 while문이 있다.
JSP 지시자와 액션 태그
지시자는 클라이언트의 요청에 jsp페이지가 실행이 될 때 필요한 정보를 jsp컨테이너에게 알리는
역할을 한다. 지시자는 @로 시작하여 page, include, taglib 3가지가 있다.
Page 에 사용할 수 있는 속성 및 값
Info - 페이지를 설명해 주는 문자열로 속성값의 내용이나 길이의 제한이 없다.
<%@page info = "이건 뭐다…"%>
Language - 스크립트 요소에서 사용할 언어를 지정하는 속성이다.
<%@page language = "java"%>
contentType-Jsp페이지의 내용이 어떤 형태로 출력을 할 것인지 MIME형식으로 브라우저에 알려주는 역 할을 한다.
<%@page contantType="text/html",charset="EUC-KR"%>
Extends - jsp페이지가 Servlet소스로 변환되는 시점에서 자신이 상속받을 클래스를 지정할 때 사용된다.
<%@page extends="com.jspstudy.Directive"%>
com.jspstudy.Directive 클래스를 상속을 하겠다는 의미이다.
Import - jsp페이지 내에서 package 이름을 지정하지 않고 다른 클래스를 가져와서 사용하는 경우에 사용 한다.
<%@page import = "java.util.*" page import = "java.io.* , java.sql.* %>
Session-jsp 페이지가 httpsession을 사용할지 여부를 지정하는 속성이다.
<%@page session = "false"%>
Buffer-jsp페이지의 출력 크기를 킬로바이트 단위로 지정하는 속성이면 기본값은 8KB이다.
<%@page buffer="16KB"%>
autoFlush-jsp페이지의 내용들이 브라우저에 출력되기 전에 버퍼에 다 채워질 경우 저장되어 있는 내용들 을 어떻게 처리할 지를 경정하는 것이다. True일 경우 버퍼가 다 찼을 경우 자동적으로 비워지게 되어 요 청한 내용을 브라우저에 전송한다.
<%@page autoFlush = "false"%>
isThreadSafe-하나의 jsp페이지가 동시에 여러 브라우저의 요청을 처리할 수 있는지 여부를 설정하는 것 이다. 기본값은 ture이며 false로 지정해 놓으면 요청을 동시에 처리하지 않고 요청한 순서대로 처리한다.
<%@page isThreadSafe = "false"%>
errorPage - jsp페이지를 처리하는 도중에 페이지에서 예외가 발생할 경우 자신이 예외를 처리하지 않고 다른 페이지에서 처리하도록 지정할 수 있는 속성이다.
<@%page errorPage = "Error.jsp"%>
isErrorPage - jsp페이지가 에러 처리를 담당하는 페이지인지 아닌지 여부를 지정할 때 사용되는 속성이 다. 요청된 현재 페이지가 예외를 발생하여 에러 처리를 위해서 만들어지는 에러 페이지라면 True로 설정 한다.
<%@page isErrorPage = "true"%>
pageEncoding-character의 인코딩을 지정할 때 사용한다.
<%@page pageEncoding = "EUC-KR"%>
Include 지시자 - 여러 jsp페이지에서 공통적으로 포함하는 내용이 있을 때 이렇나 내용을 매번 입력하지 않고 별도의 파일을 저장해 두었다가 jsp 파일에 삽입할 수 있다.
<%include file = "URL"%>
액션 태그
Include 액션 태그-include 지시자와 함께 다른 페이지를 현재 페이지에 포함 시킬 수 있는 기능을 가지고 있다. 그러나 include 지시자는 단순하게 소스의 내용이 텍스트로 포함이 되지만 액션 태그는 포함 시킬 페이지의 처리 결과를 포함시킨다는 점에서 틀리다.
<jsp:include page = "URL" flush="true"/>
Flush속성은 true일 경우 포함할 페이지의 내용을 삽입하기 이전에 현재 페이지가 지금까지 버퍼에 저장한 내용을 출력하게 한다.
Forward-jsp 페이지 내에 forward 액션 태그를 만나게 되면 forward 태그가 있던 jsp페이지의 모든 내용 을 버리고서 forward 태그가 지정하는 다른 페이지로 이동하게 된다.
<sjp:forward page="URL"/>
<jsp:forward page="URL"></jsp:forward>
<jsp:forward page='<%expression%>'/>
<body>
<form method = post action="ForwardTag1_1.jsp">
아이디:<input type="text" name="id"><p></p>
패스워드:<input type="password" name="password"><p><p>
<input type="submit" value="보내기">
</form>
</body>
<body>
흠
<jsp:forward page="ForwardTag1_2.jsp"/>
</body>
<body>
<%
String id=request.getParameter("id");
String password=request.getParameter("password");
%>
당신의 아이디는 <b><%=id %></b>이고 <p></p>
패스워드는 <B><%=password %></B>입니다.
</body>
<jsp:param> 태그는 액션을 시도하려는 페이지에서 클라이언트 요청시에 포함된 매겨변수와는 별도로 추가적인 값이 생길 때 사용하는 태그입니다.
<jsp:forward page="URL">
<jsp:param name = "name_1" value="value_1"/>
<jsp:param name = "name_2" value="value_2"/>
</jsp:forward>
기타 액션 태그
Plug-in-JSP컨테이너는 <jsp:plugin> 액션 태그를 브라우저에서 인식할 수 있는 태그로 변환하여 브라우저가 자바 플러그인을 사용하여 자바 애플릿을 실행하도록 만들어 준다
useBean-자바빈즈와 통신을 위해서 구현한 액션 태그이다.