[JSP] 2021.02.02. DAY_69 JSP 스크립트태그, 로또추첨기 만들기

2021. 2. 2. 14:53Web_Back-end/JSP

◎ 스크립트 태그

<% ... %> 사용
JSP 페이지가 서블릿 프로그램에서 서블릿 클래스로 변환할 때
JSP 컨테이너가 자바 코드가 삽입되어 있는 스크립트 태그를 처리하고,
나머지는 HTML 코드나 일반 텍스트로 간주

선언문 : member variable (전역변수)
스크립틀릿 : local variable (지역변수)

※ 스크립트 태그의 종류

<%@ 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>
<!-- declaration(선언문) : 변수, method 선언 -->
<!-- 여기서 변수선언 : member영역 -->
<%!
	int count = 3;
	String makeItLower(String data){
		return data.toLowerCase();
	}
%>

<!-- scriptlet : 코드작성 -->
<!-- 여기서 변수선언 : service method안의 지역변수 -->
<%
	int year = 2021;
	out.print("year: " + year + "<br>");
	out.print("count: " + count + "<br>");
	for(int i=1; i<=count; i++){
		out.print(i + "<br>");
	}
%>

<!-- expression(표현문) :  -->
<%=count %><br>
<%=year %><br>
<%=makeItLower("HELLO WORLD!") %><br>
</body>
</html>


※ JSP로 Lotto 추첨하는 코드 작성하기

<%@page import="java.util.TreeSet"%>
<%@page import="java.util.Random"%>
<%@ 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>
	<!-- Lotto 번호 생성기 -->
	<!-- 중복제거를 위해 set을 사용 -->
	<%
	TreeSet<Integer> set = new TreeSet<Integer>();//중복되지 않는 자료, 정렬
	Random r = new Random();//난수발생

/* 	while (true) {//조건달성까지 무한반복
		int n = r.nextInt(45) + 1;//1~45 난수
		set.add(n);//중복값은 담기지 않기 때문에 중복되지 않는 난수가 담긴다
		if (set.size() < 6) {//set의 크기가 6개 될때까지 반복하게 조건
			break;//중복되지 않는 수가 6개담기면 while문이 종료된다
		}
	} */
	while (set.size() < 6) {//중복되지 않는 수가 6개담기면 while문이 종료된다
		int n = r.nextInt(45) + 1;//1~45 난수
		set.add(n);//중복값은 담기지 않기 때문에 중복되지 않는 난수가 담긴다
	}
	%>
	<h2>이번주 추첨 로또번호</h2>
	<h3><%=set %></h3>

</body>
</html>

 

 

쉽게 배우는 JSP 웹 프로그래밍