본문 바로가기

JSP, Servlet, MySQL/JSP - webmarket

JSP servlet 스크립트 태그: 시작 페이지 만들기

728x90
반응형

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>&copy; WebMarket</p>
		</footer>
		
	
	
	</body>
</html>

 

 

728x90
반응형