본문 바로가기

IT

3. JSP - 기본 태그 연습

첫 번째 

localhost:8080(포트번호) JSPBasic (content root)  tag_prectice.jsp(파일경로)

<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!
	//Declaration
	//jsp파일에서 사용할 멤버변수, 메서드를 선언할 때 사용.
	public int total;

	public int randomNumber(){
		//랜덤 정수 1~10까지의 발생시켜서 리턴해주세요.
		// 2가지 방법이 있다.
		//첫번째 int number = (int)(Math.random() * 10) + 1;
		//두번째
		Random r = new Random();
		return r.nextInt(10)+1;		
	}
	String randomColor() {
		/*
		실수 0.0이상 1.0.미만의 난수를 발생시켜서 난수 값이 0.66이상이면
		"빨강", 0.33이상이면 "노랑"을 그 이외에는 "파랑"을 리턴하는 
		메세지를 선언하세요.
		*/
		double d = Math.random();
		if(d >= 0.66 ) 
			return "빨강";
		else if(d >=0.33)
			return "노랑";
		else
			return "파랑";		
	}
%>

<%
	//Scriptlet
	//지역 변수 및 메서드 내부의 코드를 작성하는 태그
	//페이지 요청이 발생할 때마다 실행할 로직의 작성.
	int each = 0;
	total++;
	each++;
	
	int rn = randomNumber();
	String rc = randomColor();
%>


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<h2>오늘의 운세!</h2>
	<!-- p태그는 문단을 나눌 때 사용하는 태그이다. -->
	<!-- h태그와 p태그는 자동으로 태그를 한다. html5부터는 br/에서 /는생략가능 -->
	<!-- em 기울림체 -->
	<p>
		페이지 누정 요청수 <%= total %>,
		페이지 개별 요청수 <%= each %><br/>
	</p>
	<h3>오늘의 행운의 숫자와 행운의 색깔</h3>
	<p>
		행운의 숫자: <strong><%= rn %></strong> <br/>
		행운의 색깔: <em><%= rc %></em> 
	</p>

</body>
</html>

 

두 번째

 

 

 

 trimDirectiveWhitespaces="true" 를 썼기 때문에 위 html 코드에서 jsp여백이 사라졌다.

<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" trimDirectiveWhitespaces="true"%>
<!-- trimDirectiveWhitespaces="true" 를 적어주면 웹페이지에서 html코드를 보면 jsp 빈공간을 없애준다.-->
<%! int total; %>
<%
	total++;
	Random r = new Random();
	//nextInt()메서드는 정수난수값을 발생시키는 메서드이다.
	//매개값으로 정수 n을 주면 0이상 n미만의 정수 난수를 리턴한다. 
	int num = r.nextInt(8) + 2; //2부터 9까지
%>   
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>
		페이지 누적 요청 수 : <%= total %> <br/>
		매<strong>10</strong>번째 방문자에게는 기프티콘을 드립니다. <br/>
		<%if(total % 10 == 0 ) { %>
			당청되셨습니다.!!
		<%}	%>
	</p>
	
	<h2>랜덤 구구단(<%= num %>단)</h2>
	<p>
		이번에 나온 구구단은 <%= num %>단입니다.
	</p>
	<p>
		<%for(int i=1; i<=9; i++) { %>
			<%= num %> X <%= i %> = <%= num * i %><br/>
		<% } %>
	</p>

</body>
</html>

 


세 번째

*List

- 순차형 객체를 저장하는 자료구조

- 중복 객체 저장 가능, 저장 순서를 보장

- index로 관리

- Array, Linklist

 

List<> list = new ArrayList<>();

list.add() - 추가

list.size() - 개수 확인

list.get(index) - 인덱스 값 확인

list.remove(객체 or index) - 삭제

list.indexof(객체) - 이 객체가 리스트 몇 번째에 있는지 확인

list.cantains(객체) - 이 객체가 리스트 안에 있는지 확인

list.clear()- 리스트 내부 데이터 all 삭제 

list.est(index, 객체); - 수정

Clollections.sort(); - 오름차순 정렬

<%@page import="java.util.Collections"%>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
//선언부로 만들면 데이터가 계속 쌓인다. clear를 적어줘도되지만 그냥 이렇게 했다.
//그럼 f5할때마다 리스트 내부 데이터가 사라진다.
	List<Integer> lotto = new ArrayList<>();
	while(lotto.size() < 6) {
		int rn = (int)(Math.random() * 45 ) + 1;
		//conrain(): 리스트 내부에 해당 객체가 존재하면 true를 리턴.
		if(!lotto.contains(rn)) {
			lotto.add(rn);
		}
	}
	//리스트의 오름차 정렬방법.
	Collections.sort(lotto);
%>


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>로또번호 생성 결과</h1>
	<p>이번주 로또는 이 번호다!!<br/>
	<%
	for(int num : lotto) {
		out.println(num + "&nbsp;");
		Thread.sleep(700); //cpu를 잠시 멈추는 메서드
		out.flush(); //브라우저의 출력 버퍼를 비우는 메서드
	}
	%>
	</p>

</body>
</html>

'IT' 카테고리의 다른 글

4-1. JSP 내장객체 request  (0) 2022.09.05
3-1. jsp - Directive태그 include속성  (0) 2022.09.04
2-1. JSP 기본 태그 학습  (0) 2022.09.02
2. JSP 개발환경설정(JDK, 이클립스, Tomcat)  (0) 2022.09.02
1. JSP & HTML 기초  (0) 2022.08.30