chapter2
01. 스크립트 태그의 개요
스크립트 태그 형식 설명
선언문(declaration) | <%! %> | 자바 변수나 메소드를 정의하는 데 사용한다. |
스크립틀릿(scriotlet) | <% %> | 자바 로직 코드를 작성하는 데 사용 |
표현문(expression) | <%= %> | 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력하는데 사용 |
<html>
<head>
<title>Scripting tag</title>
</head>
<body>
<h2>Scripting tag</h2>
<%! int count = 3;
String makeItLower(String data){ //선언문 태그를 사용하여 자바 변수와 메소드 정의(선언부)
return data.toLowerCase();
} %>
<%
for(int i =1; i<=count; i++){
out.println("Java Server Pages" + i +".<br>" ); //스크립틀릿 태그로 자바 로직코드 작성(처리부)
}
%>
<%=makeItLower("Hello World")%> //표현문 태그로 선언문 메소드를 호출하여 문자열 형태로 출력(출력부)
</body>
</html>
위 예제는 jsp 페이지에 작성된 스크립트 태그이다. ‘ scriopting.jsp ‘
‘톰캣설치ROOT\webapps\ROOT\’
scripting.jsp가 웹 브라우저를 통해 요청되면 톰캣은 이 jsp 페이지를 서블릿 프로그램으로 번역하고 컴파일한 서블릿 클래스를 실행하여 웹 브라우저에 보여준다. 이때 서블릿 프로그램과 서블릿 클래스는 ‘톰캣설치ROOT\work\Catalina\localhost\ROOT\org\apach\jsp\’에 각각 ‘scripting_jsp.java’ , ‘scripting_jsp.class’로 보관된다.
(생략)
public final class scripting_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent,
org,apache.jasper.runtime.JspSourceImports {
int count = 3;
String makeItLower(String data){
return data.toLowerCase(); //선언부
}
..(생략)..
public void _jspService(Final javax.servlet.http.HttpServletRequest request,final javax
.servlet.http.HttpServletResponse response) throws java.io.IOException,javax.servlet
.ServletException{
..(생략)..
for(int i=0; i<=count;i++){
out.println("Java Server Pages" + i +"<br>"); //처리부
}
out.write("\\r\\n");
out.write("\\r\\n");
out.print(makeItLower("Hello World")); //출력부
..(생략)..
}
}
02. 선언문 태그의 기능과 사용법
선언문 태그로 선언된 변수는 서블릿 프로그램으로 번역될 떄 클래스 수준의 멤버 변수가 되므로 전역변수로 사용된다.
<%! 자바 코드 ; %> //각 행이 세미콜론(;)으로 끝나야 한다.
[선언문 태그 사용 예: 전역 변수 선언, 전역 메소드 선언]
<html>
<head>
<title>Scripting tag</title>
</head>
<%- 선언문 태그 [매소드]-%>
<%! int count = 0; //전역 변수 count 를 0으로 초기화
public int myMethod(int count){ //전역메소드 myMeathod()설정
return ++count;
}
%>
<body>
<h2>Scripting tag</h2>
Page Count is
<%- 스크립틀릿 태그 -%>
<%
out.println(++count); //전역변수 count를 1 증가시킴
out.print(myMethod(0)); //전역 메소드 myMethod()호출
%>
</body>
</html>
이 JSP 페이지는 다음과 같은 서블릿 프로그램으로 번역된다.(전역변수만 해당)
public class hello_jsp extends HttpServlet{
int count=0;
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws IOExeption,ServletException{
PrintWriter out = response.getWriter();
response.setContenType("text/html");
out.write("<html><body>");
out.write("Page count is");
out.print(++count);
out.write("</body></html>");
}
}
실습 선언문 태그에 전역변수 사용하기
<html>
<head>
<title>Scripting tag</title>
</head>
<body>
<%! int data = 50; %>
<%
out.println("Value or the variable is:" +data);
%>
</body>
</html>
출력:
Value or the variable is:50
선언문 태그에 전역 메소드 사용하기 1
<html>
<head>
<title>Scripting tag</title>
</head>
<body>
<%! int sum(int a, int b){
return a + b ;
}%>
<%
out.println("2 + 3 = " + sum(2,3));
%>
</body>
</html>
출력:
2 + 3 = 5
선언문 태그에 전역 메소드 사용하기 2
<html>
<head>
<title>Scripting tag</title>
</head>
<body>
<%! String makeItLower(String data){
return data.toLowerCase();
}%>
<%
out.println(makeItLower("Hello World"));
%>
</body>
</html>
출력:
hello world
03.스크립틀릿 태그의 기능과 사용법
스크립틀릿(scriptlet)태그는 자바코드로 이루어진 로직 부분을 표현한다. 스크립틀릿 태그는 가장 일반적으로 사용되며 변수 또는 메소드 선언, 유효식 등 다수를 포함 할 수 있다. 모든 텍스트, HTML 태그 또는 Jsp 요소는 스크립틀릿 태그 외부에 있어야 한다.
<% 자바 코드 ; %> //마찬가지로 각 행 세미콜론(;)으로 끝내야함
스크립틀릿 태그에 작성된 자바 코드는 서블릿 프로그램으로 변환될때 _jspService() 메소드 내부에 복사된다.
선언문 태그 스크립틀릿 태그
변수뿐만 아니라 메소드를 선언할 수 있다. | 스크립틀릿 태그는 메소드 없이 변수만을 선언 할 수 있다. |
서블릿 프로그램으로 변활될때 _jspService()메소드 외부에 배치된다. | 서블릿 프로그램으로 변환될 때 _jspService()메소드 내부에 배치된다. |
[스크립틀릿 태그 사용 예]
<html>
<head>
<title>Scripting tag</title>
</head>
<%
int count = 0; //지역 변수 count를 0으로 초기화
%>
<body>
Page Count is
<%
out.println(++count); //지역변수 count를 1 증가시킴
%>
</body>
</html>
예제 - 스크립틀릿 태그에 지역변수 사용하기
<html>
<head>
<title>Scripting tag</title>
</head>
<body>
<%
int a = 2;
int b = 3;
int sum = a+ b;
out.println("2 + 3 =" + sum);
%>
</body>
</html>
출력:
2 + 3 =5
예제 - 스크립틀릿 태그에 0부터 10까지 짝수 출력하기
<html>
<head>
<title>Scripting tag</title>
</head>
<body>
<%
for(int i= 0; i<=10;i++){
if (i % 2 == 0)
out.println(i + "<br>");
}
%>
</body>
</html>
출력:
0
2
4
6
8
10
04.표현문 태그의 기능과 사용법
표현문(expression)태그는 웹 브라우저에 출력 할 부분을 표현한다. 표현문 태그를 이용하여 선언문 태그 또는 스크립틀릿 태그에서 선언된 변수나 메소드의 반환 값을 외부로 출력 할 수 있다. 표현문 태그는 스크립틀릿 태그에서 사용할 수 없다. 이 경우에는 out.print()메소드를 사용해야한다.
<%= 자바코드 %> //각 행을 세미콜론(;)으로 종료 할 수 없다.
표현문 태그에 숫자 , 문자, 불린(boolean) 등의 기본 데이터 타입과 자바 객체타입도 사용 가능하다. 그리고 표현문 태그에 작성된 모든 자바 코드의 값은 문자열로 변환되어 웹 브라우저에 출력된다. 기본 데이터 타입은 toString()을 통해 출력되고, 자바 객체 타입은 java.lang.Object 클래스의 toString()메소드를 사용하거나 자체에서 선언한 toString()을 사용하여 출력된다.
[표현문 태그 사용 예]
<html>
<head>
<title>Scripting tag</title>
</head>
<%
int count = 0;
%>
<body>
Page Count is
<%= ++count %> //지역변수 count를 1 증가시킴
</body>
</html>
예제 - 표현문 태그로 현재 날짜 출력하기
<html>
<head>
<title>Scripting tag</title>
</head>
<body>
<p> Today`s date : <%= new java.util.Date() %> </p>
</body>
</html>
출력:
Today`s date : Thu Jul 27 05:33:26 KST 2023
예제 - 표현문 태그로 연산결과 출력하기
<html>
<head>
<title>Scripting tag</title>
</head>
<body>
<%
int a = 10;
int b = 20;
int c = 30;
%>
<%= a + b + c %>
</body>
</html>
출력:
60
05. [웹 쇼핑몰] 시작 페이지 만들기
++부트스트랩 활용
-웹 쇼핑몰 시작 페이지 만들기
<html>
<head>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"
rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<title>Welcome</title>
</head>
<body>
<nav class="navbar navbar-expand navbar-dark bg-info">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="./welcome.jsp">Home</a> //웹 페이지 메뉴표시줄
</div>
</div>
</nav>
<%! String greeting = "Welcome to Web Shopping Mall";// 변수 greeting, tagline 에 각각
String tagline = "Welcome to Web Market!";%> //문자열을 저장하도록 선언한 태그
<div class = "jumbotron">
<div class= "container">
<h1 class = "display-3"> //웹 페이지 제목
<%= greeting %> //변수 greeting 의 값 출력 'Welcome to Web Shopping Mall'
</h1>
</div>
</div>
<div class = "container">
<div class = "text-center"> //웹 페이지 본문을 표현
<h3>
<%= tagline %> //변수 tagline 의 값 출력 'Welcome to Web Market!'
</h3>
</div>
</div>
<footer class = "container">
<p>© WebMarket</p>
</footer>
</body>
</html>

'JSP, Servlet, MySQL > JSP - webmarket' 카테고리의 다른 글
액션 태그 : 상품 목록 표시하기 2 (0) | 2023.09.03 |
---|---|
액션 태그 : 상품 목록 표시하기 (0) | 2023.09.03 |
디렉티브 태그 : 한글 출력 및 페이지 모듈화 하기 2 (0) | 2023.09.03 |
디렉티브 태그 : 한글 출력 및 페이지 모듈화 하기 (0) | 2023.09.03 |
JSP의 개요 : 원리를 이해하고 개발 환경 구축하기 (0) | 2023.09.03 |