첫 번째
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 + " ");
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 |