<% %>
JSP페이지에서 가장많이 쓰이는 스크립트 요소, 프로그래밍 로직할때 쓰임.
<%! %>
자바의 멤버변수 또는 멤버메소드로 사용하고자 할 때 사용되는 프로그래밍 로직.
선언문의 변수는 서블릿으로 변환될때 멤버변수로 변환되고 선언문에서 메소드는 서블릿에서 메소드로 만들어진다.
<%= %>
System.out.println()과 유사한 사용. 브라우저에 표현할때 사용(=writer 객체, ${})
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//1-10까지 숫자화면 출력
for( int i=1 ; i<10 ; i++){
System.out.println();
//자바코드 끝낼께
%>
<%= i %><br>
<%
//자바코드 다시 시작
}
%>
구구단 출력문
<%
for(int i=2; i<=9 ; i++) {
for (int j=1; j<=9; j++){
%>
<%= ( i + "x" + j + "=" + (i*j)) %>
<%
}
}
%>
내가 짠 멸망한 코드
<%
for(int i=2; i<=9 ; i++) {
for (int j=1; j<=9; j++){
%>
<%= i %> x <%= j %> = <%= i*j %>
<%
}
%>
<br>
<%
}
%>
정답
표현식에서는 저렇게 까지 따로따로 써줘야 한다고..?
<body>
<%
for(int i=2; i<=9 ; i++) {
for (int j=1; j<=9; j++){
out.write(i + "X" + j + "=" + i*j);
}
out.write( );
}
%>
</body>
간단하게 써준 예
선언문(declaration)은 실제로 쓰이지 않음.
자바코드 메소드를 만들경우, 외부에 자바 클래스를 별도로 만들고 메소드를 호출해서 사용하기때문이다.
<body>
<!-- 메소드는 일정한 반복적인 일을 계속 하려고 하기 위해 -->
<%!
//'!'를 붙임으로써 서비스 메소드 안에 만들어 지는것이 아니라 멤버메소드로 만들어짐
public void inCrement() {
}
%>
<%!
//멤버변수
int a =10;
%>
<%
//지역변수
int a =100;
%>
<%
//지역변수 - 에러
int a =1000;
%>
</body>