[๊ตฌ๋””์•„์นด๋ฐ๋ฏธ IT๊ตญ๋น„์ง€์›] ํ˜•๋ณ€ํ™˜๊ณผ ArrayList ํƒ€์ž…, ๋žฉํผํƒ€์ž…๊ณผ External CSS๋ฐฉ์‹์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง์ ‘ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ์‹ค์Šต์„ ํ–ˆ๋‹ค.


๐Ÿ’ก ํ˜•๋ณ€ํ™˜

int x = 10;
double dx = (double) x; // intํƒ€์ž…์„ doubleํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ์†Œ์ˆซ์ ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
// double dx = x; // ์•ž์— ํƒ€์ž…์„ ์•ˆ์จ์ค˜๋„ ๊ฐ€๋Šฅ=์ž๋™ํ˜•๋ณ€ํ™˜, ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ!
	
double dy = 3.0;
int y = (int) dy; // doubleํƒ€์ž…์„ intํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๋ฉด ์†Œ์ˆซ์ ์ด ์ž˜๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒ = ๋ช…์‹œ์ ํ˜•๋ณ€ํ™˜
// int y = dy; error // ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜๋Š” ํ˜•๋ณ€ํ™˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™ํ˜•๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ!
	
float fz = 3.14F;
long z = (long)fz; // ์ด ๊ฒฝ์šฐ๋Š” ์ž๋™ํ˜•๋ณ€ํ™˜ ๋ถˆ๊ฐ€! -> float๊ฐ€ long๋ณด๋‹ค ๋ฌผ๋ฆฌ์ ํฌ๊ธฐ๋Š” ์ž‘์ง€๋งŒ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฒ”์œ„๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค
// float๋Š” ๊ฐ’ํ‘œํ˜„๋ฐฉ์‹์— ์˜ค์ฐจ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” '๋ถ€๋™์†Œ์ˆซ์  ๋ฐฉ์‹'์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—!
  • ์•ž ์‹œ๊ฐ„์— ๋ฐฐ์šด๋Œ€๋กœ (ํƒ€์ž…)์„ ์จ์„œ ์•ž์— ๋ถ™์—ฌ์ฃผ๋ฉด ๊ทธ ํƒ€์ž…์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ํ˜•๋ณ€ํ™˜์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ํ•˜์ง€๋งŒ ํ˜•๋ณ€ํ™˜์ด ํ•ญ์ƒ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ธฐ๋ณธํƒ€์ž…์€ ๊ธฐ๋ณธํƒ€์ž…๋ผ๋ฆฌ, ์ฐธ์กฐํƒ€์ž…์€ ์ฐธ์กฐํƒ€์ž…๋ผ๋ฆฌ๋งŒ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    (BUT ์ž๋ฐ”์–ธ์–ด์—์„œ blooean ํƒ€์ž…์€ ๋ถˆ๊ฐ€๋Šฅ!)

โœ” ์ž๋™ํ˜•๋ณ€ํ™˜

  • ์ž๋™ํ˜•๋ณ€ํ™˜์€ (ํƒ€์ž…)์„ ๊ตณ์ด ์“ฐ์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ํ˜•๋ณ€ํ™˜์ธ ๊ฒฝ์šฐ์—๋งŒ ์ž๋™ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค!
  • ํŠนํžˆ floatํƒ€์ž…๊ณผ longํƒ€์ž…์„ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. floatํƒ€์ž…์ด 4byte๊ณ  longํƒ€์ž…์ด 8byte์ด๊ธฐ ๋•Œ๋ฌธ์— ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฌผ๋ฆฌ์  ํฌ๊ธฐ๋ฅผ ๋”ฐ์ง€๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ๋”ฐ์ ธ์•ผ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•„๋‹Œ์ง€ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ์ž๋™ํ˜•๋ณ€ํ™˜์€ ์ถ”ํ›„์— ๋ฐฐ์šธ ์ƒ์†์˜ ๊ฐœ๋…๊ณผ ๊ด€๋ จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ง€๊ธˆ ์ž˜ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ฉด ์ข‹๋‹ค.

๐Ÿ’ก ArrayList

  • ์•ž์„œ ๋ฐฐ์šด ๋ฐฐ์—ด๋ณด๋‹ค ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ด ๋ฐ”๋กœ ArrayList ์ด๋‹ค.

  • ์•ž ์‹œ๊ฐ„์— ์‹ค์Šตํ•œ ์ฐธ์กฐํƒ€์ž…์˜ ๋ฐฐ์—ด ๋Œ€์‹  ์ฐธ์กฐํƒ€์ž…์˜ ArrayList๋„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

  • ArrayList๋Š” ์ž๋ฐ”์–ธ์–ด์—์„œ ๋ถˆํŽธํ•œ ๋ฐฐ์—ด๋Œ€์‹  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(API) ํด๋ž˜์Šค์ด๋‹ค.

  • ArrayList<String> list = new ArrayList<String>(3); : ์ด๋Ÿฌํ•œ ํ˜•ํƒœ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋•Œ ๊ด„ํ˜ธ()์•ˆ์—๋Š” ๋ฐฐ์—ด์ฒ˜๋Ÿผ ๋ฐ˜๋“œ์‹œ ์ˆซ์ž๋ฅผ ์ง€์ •ํ•  ํ•„์š” ์—†์ด ๊ณต๋ฐฑ์œผ๋กœ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์€ ArrayList๊ฐ€ ๋™์ ๋ฐฐ์—ด์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

โœ” ๋™์ ๋ฐฐ์—ด

๋ฐฐ์—ด์€ length(๊ธธ์ด)๊ฐ€ ์กด์žฌ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ ์ƒ์„ฑํ•  ๋•Œ ์ง€์ •ํ•œ ๊ธธ์ด๋ฅผ ์ดˆ๊ณผํ•ด์„œ ์ž…๋ ฅํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๊ฒƒ์„ ์ •์ ๋ฐฐ์—ด ์ด๋ผ ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ArrayList๋Š” size(ํฌ๊ธฐ)๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ๊ฐ’ ์—†์ด list.add๋กœ ์ถ”๊ฐ€ํ•œ ๋งŒํผ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ๋˜ํ•œ, ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•  ํ•„์š”๋„ ์—†๋‹ค. ์ด๊ฒƒ์„ ๋™์ ๋ฐฐ์—ด์ด๋ผ ํ•œ๋‹ค.

๐Ÿ’ก ๋žฉํผํƒ€์ž…

<%
	//๋žฉํผํƒ€์ž… 8๊ฐœ
	Byte a = new Byte((byte)1);
	short b = new Short((short)2);
	Integer c = new Integer(3);
	Long d = new Long(4L);
	Character e = new Character('๊ฐ€');
	Float f = new Float(3.14F);
	Double g = new Double(3.14);
	Boolean h = new Boolean(true);
	
	Integer c2 = 3; // ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์ž‘์„ฑ, auto boxing์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค
	int x = c2; // auto unboxing
	
	int y = Integer.parseInt("777"); // String -(์ฐธ์กฐํƒ€์ž… ํ˜•๋ณ€ํ™˜)-> Integer -(์–ธ๋ฐ•์‹ฑ)-> int, ์ฆ‰ ์ด๊ฑด ํ˜•๋ณ€ํ™˜์ด๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜๋Š” ์—†์Œ
%>

// ๋‹ค์Œ์€ ์ฐธ์กฐํƒ€์ž…์˜ ํ˜•๋ณ€ํ™˜๊ณผ ์–ธ๋ฐ•์‹ฑ์ด ๋ฐœ์ƒํ•˜์—ฌ String์ด int๋กœ ๋ณ€๊ฒฝ๋จ
// ex) int x = Integer.parseInt("14");
// 1)๋ฌธ์ž14๋ฅผ (Integer)"14"  Integerํƒ€์ž…์œผ๋กœ ํ˜•๋ณ€ํ™˜ <- ์ฐธ์กฐํƒ€์ž…๊ฐ„์— ํ˜•๋ณ€ํ™˜
// 2) Integer 14๋ฅผ int 14๋กœ ๋ณ€๊ฒฝ <- ์–ธ๋ฐ•์‹ฑ(๋žฉํผํƒ€์ž…๊ณผ ๊ธฐ๋ณธํƒ€์ž…๊ฐ„์— ๋ณ€ํ™˜, ๋ฐ•์‹ฑ:๊ธฐ๋ณธ->๋žฉํผ, ์–ธ๋ฐ•์‹ฑ:๋žฉํผ->๊ธฐ๋ณธ)

ArrayList<int> list; // error
ArrayList<Integer> list;
  • ๋žฉํผ(๋ฐ•์‹ฑ) ํƒ€์ž… : ๊ธฐ๋ณธํƒ€์ž…๊ณผ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๊ฐ€๋Šฅํ•œ ์ž๋ฐ”์˜ ์ฐธ์กฐํƒ€์ž…์œผ๋กœ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(API)์— ํฌํ•จ๋œ ํด๋ž˜์Šค์ด๋‹ค.

  • ArrayList๋Š” ์ฐธ์กฐํƒ€์ž…์˜ ๋ฐฐ์—ด๋งŒ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฐฐ์—ด์„ ArrayList๋กœ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์ž๋ฐ”์˜ ๋žฉํผ(๋ฐ•์‹ฑ)ํƒ€์ž…์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

  • ๊ธฐ๋ณธํƒ€์ž…์„ ์ฐธ์กฐํƒ€์ž…์ฒ˜๋Ÿผ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑํƒ€์ž…์€ ์„œ๋กœ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’ก ์‹ค์Šต

๋น…๋ฐ์ดํ„ฐ๋ž€? ๋„ค์ด๋ฒ„ํšŒ์›๊ณผ ์นด์นด์˜คํšŒ์› ๋“ฑ.. ์„ฑ์งˆ์ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ์„ ๋œปํ•œ๋‹ค. ๋ณดํ†ต ์†Œ์…œ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ• ๋•Œ ์“ฐ๊ฒŒ๋˜๋Š” ๊ฐœ๋…์ด๋‹ค.
์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ชจ์•„์„œ ํ•„ํ„ฐ๋ง ํ•˜๊ธฐ (๋‹ค๋ฅธ ์„ฑ์งˆ์˜ ๋ฐ์ดํ„ฐ์—์„œ ๊ณตํ†ต๋œ ์„ฑ์งˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์œผ๊ธฐ=์ •์ œํ•˜๊ธฐ)๋Š” ์‹ค๋ฌด์—์„œ ์ž์ฃผํ•˜๊ฒŒ ๋˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

๐Ÿ“Œ ํ•™์ƒ ๋ชฉ๋ก ๋งŒ๋“ค๊ธฐ

๊ทธ๋ž˜์„œ ๋จผ์ € ์ฒซ๋ฒˆ์งธ ์‹ค์Šต์œผ๋กœ, ArrayList๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ •๋ณด๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•™์ƒ์˜ ๋ชฉ๋ก์„ ์ •์ œํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ณด์•˜๋‹ค.

๐Ÿ“ ์ž‘์„ฑ (1) - Person.java

package onepiece;

public class Person {
	public String name;
	public String gender;
	public int age;
}
  • ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๐Ÿ“ ์ž‘์„ฑ (2) - PersonList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="onepiece.Person" %>
<%
	// ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
	ArrayList<Person> list = new ArrayList<Person>();
	// data 1
	Person kcs = new Person(); // ๋ณ€์ˆ˜์ƒ์„ฑ
	kcs.name = "๊น€์ฒ ์ˆ˜"; // ๊ฐ’ ๋„ฃ๊ธฐ
	kcs.gender = "๋‚จ";
	kcs.age = 17;
	list.add(kcs); // ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
	
	// data 2
	Person lsh = new Person();
	lsh.name = "์ด์ˆœํฌ";
	lsh.gender = "์—ฌ";
	lsh.age = 20;
	list.add(lsh);
		
	// data 3
	Person hkd = new Person();
	hkd.name = "ํ™๊ธธ๋™";
	hkd.gender = "๋‚จ";
	hkd.age = 21;
	list.add(hkd);
		
	// data 4
	Person kha = new Person();
	kha.name = "๊น€ํ˜„์•„";
	kha.gender = "์—ฌ";
	kha.age = 16;
	list.add(kha);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="./myStyle.css"> <!-- (External CSS๋ฐฉ์‹) -->
</head>
<body>
	<table>
		<thead>
			<tr>
				<th>์ด๋ฆ„</th>
				<th>์„ฑ๋ณ„</th>
				<th>๋‚˜์ด</th>
			</tr>
		</thead>
		
		<tbody>
			<%
				for(Person p : list) { // list.size()๋งŒํผ ๋ฐ˜๋ณต, p๋Š” ๋‚ด๊ฐ€ ์ž„์˜๋กœ ์ง€์–ด์ฃผ๋Š” ๋ณ€์ˆ˜, ๋ณ€์ˆ˜ p์— ๋ฐฐ์—ด์ด ์ˆœ์„œ๋Œ€๋กœ ๋Œ€์ž…๋จ
			%>
					<tr>
						<td><%=p.name%></td>
						<td><%=p.gender%></td>
						<td><%=p.age%></td>
					</tr>
			<%
				}
			%>
		</tbody>
	</table>
</body>
</html>
  • page import๋กœ ํŒจํ‚ค์ง€๋ช… ์ƒ๋žตํ•˜๊ธฐ
  • ArrayList<Person> list = new ArrayList<Person>(); : ์•ž์„œ ์ž‘์„ฑํ•œ ํด๋ž˜์Šค(์ฐธ์กฐํƒ€์ž…, Person)์˜ ArrayList ์ƒ์„ฑ, ์ด๋ฆ„์€ list๋กœ ์ง€์ •
  • Person kcs = new Person(); : ํด๋ž˜์Šค ๋ณ€์ˆ˜ kcs ์ƒ์„ฑ
  • kcs.name = "๊น€์ฒ ์ˆ˜"; : ๊ฐ’ ๋„ฃ๊ธฐ
  • list.add(kcs); : ๋ณ€์ˆ˜ kcs์— ์ž…๋ ฅ๋œ ๋ชจ๋“  ๊ฐ’๋“ค์„ ArrayList์— ์ตœ์ข…์ ์œผ๋กœ ์ถ”๊ฐ€
  • for(Person p : list) : foreach๋ฌธ ์‚ฌ์šฉ, list์— ์ €์žฅ๋œ ๊ฐ’๋“ค์„ ํด๋ž˜์Šค์—์„œ ์ƒ์„ฑํ•œ ํƒ€์ž…๋Œ€๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • <%=p.name%> : ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋• foreach๋ฌธ ์ž‘์„ฑ์‹œ ์ž„์˜๋กœ ๋Œ€์ž…ํ•˜๊ธฐ ์œ„ํ•ด ์ง€์ •๋œ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„๊ณผ ๋งˆ์นจํ‘œ ์ด์šฉ

๐Ÿ“ ๊ฒฐ๊ณผ

ํ•™์ƒ๋“ค์˜ ๋ชฉ๋ก์„ ์ด๋ฆ„, ์„ฑ๋ณ„, ๋‚˜์ด๋กœ ์ •์ œํ•˜์—ฌ ์ถœ๋ ฅํ–ˆ๋‹ค.

๐Ÿ“Œ ์›ํ”ผ์Šค ๋“ฑ์žฅ์ธ๋ฌผ ๋ชฉ๋ก ๋งŒ๋“ค๊ธฐ (1)

์›ํ”ผ์Šค ๋“ฑ์žฅ์ธ๋ฌผ์˜ ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™”ํ•˜๊ธฐ

๐Ÿ“ ์ž‘์„ฑ (1) - Pirate.java

package onepiece;
import java.util.ArrayList; // ํŒจํ‚ค์ง€๋ช… ์ค„์ด๊ธฐ
public class Pirate {
	public String name;
	public String nickName;
	public char gender; // 'M', 'F' ์ถœ๋ ฅ์‹œ ๋‚จ์—ฌ ์ด๋ฏธ์ง€
	public String birth;
	public int age;
	public int height;
	public ArrayList<String> hobby; // โ˜† ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ทจ๋ฏธ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ
	public String blood;
	public String country;
	public long money; // ํ˜„์ƒ๊ธˆ 20์–ต์„ ๋„˜์–ด๊ฐ€์„œ
	public String group; // ํ•ด์ (์†Œ์†)
	public boolean isDevilFruit; // ์•…๋งˆ์˜ ์—ด๋งค ์œ ๋ฌด // ์ถœ๋ ฅ ์‹œ ์ด๋ฏธ์ง€
}
  • ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • public ArrayList<String> hobby; : ์ž…๋ ฅ๋˜๋Š” ๊ฐ’์ด ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ๊ฐœ์ผ ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ArrayList์•ˆ์— ๋˜๋‹ค๋ฅธ ArrayList๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“ ์ž‘์„ฑ (2) - onepiece.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="onepiece.Pirate" %>
<%@ page import="java.util.ArrayList" %>
<%
	// RDBMS(์˜ค๋ผํด,mysql(mariadb),mssql) ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ
	// ์ฝ”๋“œ์ƒ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ (ArrayList<Pirate>) ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋‚˜
	// ์šฐ๋ฆฌ๋Š” ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ
%>
<%
	ArrayList<Pirate> list = new ArrayList<Pirate>(); // ๋ฐฐ์—ด
	
	// Pirat ๊ฐ์ฒด๋ฅผ 20๊ฐœ ์ƒ์„ฑ
	// 1)
	Pirate p1 = new Pirate(); // ํด๋ž˜์Šค
	p1.name = "๋ชฝํ‚ค D. ๋ฃจํ”ผ";
	p1.nickName = "๋ฐ€์งš๋ชจ์ž";
	p1.gender = 'M';
	p1.birth = "5์›” 5์ผ";
	p1.age = 19;
	p1.height = 174;
	p1.hobby = new ArrayList<String>(); // ๋ฐฐ์—ด ์ƒ์„ฑ
	p1.hobby.add("๋ชจํ—˜"); // ์ทจ๋ฏธ ์ถ”๊ฐ€
	p1.hobby.add("์ž”์น˜");
	p1.blood = "Fํ˜•";
	p1.country = "์ด์ŠคํŠธ ๋ธ”๋ฃจ ๊ณ ์•„ ์™•๊ตญ ํ›„์ƒค ๋งˆ์„";
	p1.money = 3000000000L;
	p1.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p1.isDevilFruit = true;
	list.add(p1); // ๋ฐฐ์—ด์— ์ถ”๊ฐ€
	
	Pirate p2 = new Pirate();
	p2.name = "๋กค๋กœ๋…ธ์•„ ์กฐ๋กœ";
	p2.nickName = "ํ•ด์  ์‚ฌ๋ƒฅ๊พผ";
	p2.gender = 'M';
	p2.birth = "11์›” 11์ผ";
	p2.age = 21;
	p2.height = 181;
	p2.hobby = new ArrayList<String>();
	p2.hobby.add("์Œ์ฃผ");
	p2.hobby.add("์ˆ˜ํ–‰");
	p2.blood = "XFํ˜•";
	p2.country = "์ด์ŠคํŠธ ๋ธ”๋ฃจ ์‹œ๋ชจ์ธ ํ‚ค ๋งˆ์„";
	p2.money = 1111000000L;
	p2.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p2.isDevilFruit = false;
	list.add(p2);
	
	Pirate p3 = new Pirate();
	p3.name = "๋‚˜๋ฏธ";
	p3.nickName = "๋„๋‘‘๊ณ ์–‘์ด";
	p3.gender = 'F';
	p3.birth = "7์›” 3์ผ";
	p3.age = 20;
	p3.height = 170;
	p3.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p3.blood = "Xํ˜•";
	p3.country = "์ด์ŠคํŠธ ๋ธ”๋ฃจ ์˜ค์ด์ฝ”ํŠธ ์™•๊ตญ";
	p3.money = 366000000L;
	p3.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p3.isDevilFruit = false;
	list.add(p3);
	
	Pirate p4 = new Pirate();
	p4.name = "์šฐ์†";
	p4.nickName = "๊ฐ“(GOD)";
	p4.gender = 'M';
	p4.birth = "4์›” 1์ผ";
	p4.age = 19;
	p4.height = 176;
	p4.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p4.blood = "Sํ˜•";
	p4.country = "์ด์ŠคํŠธ ๋ธ”๋ฃจ ์‹œ๋กญ ๋งˆ์„";
	p4.money = 500000000L;
	p4.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p4.isDevilFruit = false;
	list.add(p4);
	
	Pirate p5 = new Pirate();
	p5.name = "์ƒ๋””";
	p5.nickName = "๊ฒ€์€ ๋‹ค๋ฆฌ";
	p5.gender = 'M';
	p5.birth = "3์›” 2์ผ";
	p5.age = 21;
	p5.height = 180;
	p5.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p5.blood = "Rh- Sํ˜•";
	p5.country = "๋…ธ์Šค ๋ธ”๋ฃจ ์ œ๋ฅด๋งˆ ์™•๊ตญ";
	p5.money = 1032000000L;
	p5.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p5.isDevilFruit = false;
	list.add(p5);
	
	Pirate p6 = new Pirate();
	p6.name = "ํ† ๋‹ˆํ† ๋‹ˆ ์ตธํŒŒ";
	p6.nickName = "์†œ์‚ฌํƒ•๊ด‘";
	p6.gender = 'M';
	p6.birth = "12์›” 24์ผ";
	p6.age = 17;
	p6.height = 90;
	p6.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p6.blood = "Xํ˜•";
	p6.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ ์‚ฌ์ฟ ๋ผ ์™•๊ตญ(๊ตฌ ๋“œ๋Ÿผ ์™•๊ตญ)";
	p6.money = 1000L;
	p6.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p6.isDevilFruit = true;
	list.add(p6);
	
	Pirate p7 = new Pirate();
	p7.name = "๋‹ˆ์ฝ” ๋กœ๋นˆ";
	p7.nickName = "์•…๋งˆ์˜ ์•„์ด";
	p7.gender = 'F';
	p7.birth = "2์›” 6์ผ";
	p7.age = 30;
	p7.height = 188;
	p7.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p7.blood = "Sํ˜•";
	p7.country = "์›จ์ŠคํŠธ ๋ธ”๋ฃจ ์˜คํ•˜๋ผ";
	p7.money = 930000000L;
	p7.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p7.isDevilFruit = true;
	list.add(p7);
	
	Pirate p8 = new Pirate();
	p8.name = "์ปคํ‹ฐ ํ”„๋žŒ";
	p8.nickName = "ํ”„๋ž‘ํ‚ค";
	p8.gender = 'M';
	p8.birth = "3์›” 9์ผ";
	p8.age = 36;
	p8.height = 240;
	p8.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p8.blood = "XFํ˜•";
	p8.country = "์‚ฌ์šฐ์Šค ๋ธ”๋ฃจ";
	p8.money = 394000000L;
	p8.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p8.isDevilFruit = false;
	list.add(p8);
	
	Pirate p9 = new Pirate();
	p9.name = "๋ธŒ๋ฃฉ";
	p9.nickName = "์†Œ์šธ ํ‚น";
	p9.gender = 'M';
	p9.birth = "4์›” 3์ผ";
	p9.age = 90;
	p9.height = 277;
	p9.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p9.blood = "Xํ˜•";
	p9.country = "์›จ์ŠคํŠธ ๋ธ”๋ฃจ";
	p9.money = 383000000L;
	p9.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p9.isDevilFruit = true;
	list.add(p9);
	
	Pirate p10 = new Pirate();
	p10.name = "์ง•๋ฒ ";
	p10.nickName = "๋ฐ”๋‹ค์˜ ํ˜‘๊ฐ";
	p10.gender = 'M';
	p10.birth = "4์›” 2์ผ";
	p10.age = 46;
	p10.height = 301;
	p10.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p10.blood = "Fํ˜•";
	p10.country = "์šฉ๊ถ ์™•๊ตญ ์–ด์ธ๊ฐ€";
	p10.money = 1100000000L;
	p10.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p10.isDevilFruit = false;
	list.add(p10);
	
	Pirate p11 = new Pirate();
	p11.name = "์—๋“œ์›Œ๋“œ ๋‰ด๊ฒŒ์ดํŠธ";
	p11.nickName = "ํฐ ์ˆ˜์—ผ";
	p11.gender = 'M';
	p11.birth = "4์›” 6์ผ";
	p11.age = 72;
	p11.height = 666;
	p11.hobby = new ArrayList<String>();
	p11.hobby.add("์ €๊ธˆ");
	p11.blood = "Fํ˜•";
	p11.country = "์‹ ์„ธ๊ณ„ ์Šคํ•‘ํฌ์Šค";
	p11.money = 5046000000L;
	p11.group = "ํฐ ์ˆ˜์—ผ ํ•ด์ ๋‹จ";
	p11.isDevilFruit = true;
	list.add(p11);
	
	Pirate p12 = new Pirate();
	p12.name = "์นด์ด๋„";
	p12.nickName = "๋ฐฑ์ˆ˜";
	p12.gender = 'M';
	p12.birth = "5์›” 1์ผ";
	p12.age = 59;
	p12.height = 710;
	p12.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p12.blood = "Fํ˜•";
	p12.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ ๋ณด๋“œ์นด ์™•๊ตญ";
	p12.money = 4611100000L;
	p12.group = "๋ฐฑ์ˆ˜ ํ•ด์ ๋‹จ";
	p12.isDevilFruit = true;
	list.add(p12);
	
	Pirate p13 = new Pirate();
	p13.name = "์ƒฌ๋กฏ ๋ง๋ง";
	p13.nickName = "๋น… ๋ง˜";
	p13.gender = 'F';
	p13.birth = "2์›” 15์ผ";
	p13.age = 68;
	p13.height = 880;
	p13.hobby = new ArrayList<String>();
	p13.hobby.add("๋‹ค๊ณผํšŒ");
	p13.hobby.add("์ง„๊ท€ํ•œ ๋™๋ฌผ ์ˆ˜์ง‘");
	p13.blood = "Xํ˜•";
	p13.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ";
	p13.money = 4388000000L;
	p13.group = "๋น… ๋ง˜ ํ•ด์ ๋‹จ";
	p13.isDevilFruit = true;
	list.add(p13);
	
	Pirate p14 = new Pirate();
	p14.name = "์ƒนํฌ์Šค";
	p14.nickName = "๋นจ๊ฐ„ ๋จธ๋ฆฌ";
	p14.gender = 'M';
	p14.birth = "3์›” 9์ผ";
	p14.age = 39;
	p14.height = 199;
	p14.hobby = new ArrayList<String>();
	p14.hobby.add("๋ฐฉ๋ž‘");
	p14.blood = "XFํ˜•";
	p14.country = "์›จ์ŠคํŠธ ๋ธ”๋ฃจ ๊ฐ“๋ฐธ๋ฆฌ";
	p14.money = 4048900000L;
	p14.group = "๋นจ๊ฐ„ ๋จธ๋ฆฌ ํ•ด์ ๋‹จ";
	p14.isDevilFruit = false;
	list.add(p14);
	
	Pirate p15 = new Pirate();
	p15.name = "๋งˆ์ƒฌ D ํ‹ฐ์น˜";
	p15.nickName = "๊ฒ€์€ ์ˆ˜์—ผ";
	p15.gender = 'M';
	p15.birth = "8์›” 3์ผ";
	p15.age = 40;
	p15.height = 344;
	p15.hobby = new ArrayList<String>();
	p15.hobby.add("๋„๋ฐ•(๊ฒœ๋ธ”๋ง)");
	p15.hobby.add("์—ญ์‚ฌ ํƒ๊ตฌ");
	p15.blood = "Fํ˜•";
	p15.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ";
	p15.money = 3996000000L;
	p15.group = "๊ฒ€์€ ์ˆ˜์—ผ ํ•ด์ ๋‹จ";
	p15.isDevilFruit = true;
	list.add(p15);
	
	Pirate p16 = new Pirate();
	p16.name = "ํŠธ๋ผํŒ”๊ฐ€ D ์›จํ…” ๋กœ";
	p16.nickName = "์ฃฝ์Œ์˜ ์™ธ๊ณผ์˜";
	p16.gender = 'M';
	p16.birth = "10์›” 6์ผ";
	p16.age = 26;
	p16.height = 191;
	p16.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p16.blood = "Fํ˜•";
	p16.country = "๋…ธ์Šค ๋ธ”๋ฃจ ํ”„๋ ˆ๋ฐ˜์Šค";
	p16.money = 3000000000L;
	p16.group = "ํ•˜ํŠธ ํ•ด์ ๋‹จ";
	p16.isDevilFruit = true;
	list.add(p16);
	
	Pirate p17 = new Pirate();
	p17.name = "๋ฒ„๊ธฐ";
	p17.nickName = "์ฒœ๋ƒฅ๊ด‘๋Œ€";
	p17.gender = 'M';
	p17.birth = "8์›” 8์ผ";
	p17.age = 39;
	p17.height = 192;
	p17.hobby = new ArrayList<String>();
	p17.hobby.add("๋ณด๋ฌผ์ง€๋„ ๋ชจ์œผ๊ธฐ");
	p17.blood = "Fํ˜•";
	p17.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ";
	p17.money = 3189000000L;
	p17.group = "ํฌ๋กœ์Šค ๊ธธ๋“œ";
	p17.isDevilFruit = true;
	list.add(p17);
	
	Pirate p18 = new Pirate();
	p18.name = "๋งˆ๋ฅด์ฝ”";
	p18.nickName = "๋ถˆ์‚ฌ์กฐ";
	p18.gender = 'M';
	p18.birth = "10์›” 5์ผ";
	p18.age = 45;
	p18.height = 203;
	p18.hobby = new ArrayList<String>();
	p18.hobby.add("๋ฐ”์˜ ์ฝ”์Šคํ„ฐ ์ˆ˜์ง‘");
	p18.blood = "Xํ˜•";
	p18.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ";
	p18.money = 1374000000L;
	p18.group = "์Šคํ•‘ํฌ์Šค";
	p18.isDevilFruit = true;
	list.add(p18);
	
	Pirate p19 = new Pirate();
	p19.name = "์ฅฌ๋ผํด ๋ฏธํ˜ธํฌ";
	p19.nickName = "๋งค์˜ ๋ˆˆ";
	p19.gender = 'M';
	p19.birth = "3์›” 9์ผ";
	p19.age = 43;
	p19.height = 198;
	p19.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p19.blood = "Sํ˜•";
	p19.country = "";
	p19.money = 3590000000L;
	p19.group = "ํฌ๋กœ์Šค ๊ธธ๋“œ";
	p19.isDevilFruit = false;
	list.add(p19);
	
	Pirate p20 = new Pirate();
	p20.name = "๊ณจ D ์—์ด์Šค";
	p20.nickName = "๋ถˆ์ฃผ๋จน";
	p20.gender = 'M';
	p20.birth = "1์›” 1์ผ";
	p20.age = 20;
	p20.height = 185;
	p20.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p20.blood = "Sํ˜•";
	p20.country = "์‚ฌ์šฐ์Šค ๋ธ”๋ฃจ ๋ฐ”ํ…Œ๋ฆฌ๋ผ";
	p20.money = 550000000L;
	p20.group = "ํฐ ์ˆ˜์—ผ ํ•ด์ ๋‹จ";
	p20.isDevilFruit = true;
	list.add(p20);
	
	System.out.println(list.size() + "<-- list.size()"); // 20
	// ๋””๋ฒ„๊น… ์ฝ”๋“œ, 20๊ฐœ๊ฐ€ ์ž‘์„ฑ์ด ์ž˜ ๋๋Š”์ง€
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>onepiece.jsp</title>
	<style>
		table, th, td {border: 1px solid #000000; text-align: center;}
		table {border-collapse: collapse;}
		.small {width: 30px; height: 30px;}
	</style>
</head>
<body>
	<h1>๋“ฑ์žฅ์ธ๋ฌผ ๋ฆฌ์ŠคํŠธ</h1>
	<h3>
		<div>
			์ „์ฒด <%=list.size()%>๋ช… <!-- ๋ฐฐ์—ด์˜ ์ „์ฒด ์‚ฌ์ด์ฆˆ ์ถœ๋ ฅ -->
		</div>
	</h3>
	<table>
		<tr>
			<th>์ด๋ฆ„</th>
			<th>๋ณ„๋ช…</th>
			<th>์„ฑ๋ณ„</th>
			<th>์ƒ์ผ</th>
			<th>๋‚˜์ด</th>
			<th>ํ‚ค</th>
			<th>์ทจ๋ฏธ</th>
			<th>ํ˜ˆ์•กํ˜•</th>
			<th>์ถœ์‹ ์ง€</th>
			<th>ํ˜„์ƒ๊ธˆ</th>
			<th>์†Œ์†</th>
			<th>์•…๋งˆ์˜ ์—ด๋งค</th>
		</tr>
		<%
			for(Pirate p : list) {
		%>
				<tr>
					<td><%=p.name%></td>
					<td><%=p.nickName%></td>
					<td>
						<%
							if(p.gender == 'M') {
						%>
								<img class="small" src="./img/man.jpg">
						<%
							} else {
						%>
								<img class="small" src="./img/woman.jpg">
						<%
							}
						%>
					</td>
					<td><%=p.birth%></td>
					<td><%=p.age%>์„ธ</td>
					<td><%=p.height%>cm</td>
					<td>
						<%
							if(p.hobby != null){ // ์ทจ๋ฏธ์— ๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ foreach๋ฌธ ์‹คํ–‰
								int cnt = 1; // foreach๋ฌธ ๋ฐ–์—์„œ ๋ณ€์ˆ˜ ์ƒ์„ฑ
								for(String h : p.hobby) {
						%>
									<%=h%>
						<%
									if(cnt<p.hobby.size()) { // ์ทจ๋ฏธ ์‚ฌ์ด์‚ฌ์ด์— ์‰ผํ‘œ(,) ์ž…๋ ฅ
						%>
										,
						<%
									}
									cnt = cnt + 1; // ๋งˆ์ง€๋ง‰์—” ์‰ผํ‘œ(,)๊ฐ€ ์•ˆ๋‚˜์˜ค๋„๋ก
								}
							}
						%>
					</td>
					<td><%=p.blood%></td>
					<td><%=p.country%></td>
					<td><%=p.money%>๋ฒ ๋ฆฌ</td>
					<td><%=p.group%></td>
					<td>
						<%
							if(p.isDevilFruit == true) {
						%>
								<img class="small" src="./img/fruit_o.jpg">
						<%
							} else {
						%>
								<img class="small" src="./img/fruit_x.jpg">
						<%					
							}
						%>
					</td>
				</tr>
		<%
			}
		%>
	</table>
</body>
</html>
  • page import : ํŒจํ‚ค์ง€๋ช… ์ƒ๋žต
  • ArrayList<Pirate> list = new ArrayList<Pirate>(); : ํด๋ž˜์Šค Pirate ํƒ€์ž…์˜ ArratList์ธ list ์ƒ์„ฑ
  • Pirate p1 = new Pirate(); : p1 ํด๋ž˜์Šค ๋ณ€์ˆ˜ ์ƒ์„ฑ
  • p1.name = "๋ชฝํ‚ค D. ๋ฃจํ”ผ"; : p1 ํด๋ž˜์Šค ๋ณ€์ˆ˜์— ํƒ€์ž…์— ๋งž๋Š” ๊ฐ’ ๋„ฃ๊ธฐ
  • p1.hobby = new ArrayList<String>(); : ๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ์ด๋ฏ€๋กœ ArrayList ์ƒ์„ฑ
  • p1.hobby.add("๋ชจํ—˜"); : ArrayListํƒ€์ž…์ด๋ฏ€๋กœ add๋กœ ๊ฐ’ ์ถ”๊ฐ€
  • p3.hobby = null; : ๋„ฃ์„ ๊ฐ’์ด ์—†์œผ๋ฉด null ์ž…๋ ฅ
  • list.add(p1); : p1์— ์ž…๋ ฅ๋œ ๋ชจ๋“  ๊ฐ’๋“ค์„ ์ตœ์ข…์ ์œผ๋กœ list์— ์ถ”๊ฐ€
  • System.out.println(list.size() + "<-- list.size()"); : ๋””๋ฒ„๊น… ์ฝ”๋“œ, ArrayList๋Š” length๊ฐ€ ์•„๋‹Œ size์ด๋‹ค.

  • for(Pirate p : list) : ํ…Œ์ด๋ธ” ์ž‘์„ฑ์„ ์œ„ํ•œ ์ „์ฒด foreach๋ฌธ
  • if(p.hobby != null) : hobby์˜ ์ž…๋ ฅ๊ฐ’์ด null์ด ์•„๋‹ ๋•Œ๋งŒ for๋ฌธ ์‹คํ–‰ํ•˜๊ธฐ
  • int cnt = 1; : ์ทจ๋ฏธ ์ถœ๋ ฅ์‹œ ์‚ฌ์ด์‚ฌ์ด์— ์‰ผํ‘œ(,)๋ฅผ ๋„ฃ๊ธฐ ์œ„ํ•œ ์นด์šดํŠธ ๋ณ€์ˆ˜ ์ƒ์„ฑ
  • for(String h : p.hobby) : hobby ์ž…๋ ฅ์„ ์œ„ํ•œ foreach๋ฌธ
  • if(cnt<p.hobby.size()) : ์นด์šดํŠธ ๋ณ€์ˆ˜๊ฐ€ hobby์˜ size๋ณด๋‹ค ์ž‘์„ ๋•Œ๊นŒ์ง€๋งŒ ์‰ผํ‘œ(,) ์ž…๋ ฅ, ๋งจ ๋งˆ์ง€๋ง‰ ๊ฐ’ ๋’ค์—๋Š” ์‰ผํ‘œ๊ฐ€ ๋ถ™์œผ๋ฉด ์•ˆ๋˜๋ฏ€๋กœ!
  • cnt = cnt + 1; : ์นด์šดํŠธ ๋ณ€์ˆ˜๋Š” 1์”ฉ ์ฆ๊ฐ€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ foreach๋ฌธ ๋งˆ์ง€๋ง‰์— ์ž…๋ ฅ

๐Ÿ“ ๊ฒฐ๊ณผ


๐Ÿ“Œ ์›ํ”ผ์Šค ๋“ฑ์žฅ์ธ๋ฌผ ๋ชฉ๋ก ๋งŒ๋“ค๊ธฐ (2)

form action ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰์กฐ๊ฑด(์„ฑ๋ณ„)์— ๋”ฐ๋ผ ํ•„ํ„ฐ๋ง ์ด ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด์•˜๋‹ค.

๐Ÿ“ ์ž‘์„ฑ (๊ธฐ์กด ์ž‘์„ฑ ํŒŒ์ผ์— ์ถ”๊ฐ€)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="onepiece.Pirate" %>
<%@ page import="java.util.ArrayList" %>
<%
	// RDBMS(์˜ค๋ผํด,mysql(mariadb),mssql) ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ
	// ์ฝ”๋“œ์ƒ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ (ArrayList<Pirate>) ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋‚˜
	// ์šฐ๋ฆฌ๋Š” ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ
%>
<%
	ArrayList<Pirate> list = new ArrayList<Pirate>(); // ๋ฐฐ์—ด
	
	// Pirat ๊ฐ์ฒด๋ฅผ 20๊ฐœ ์ƒ์„ฑ
	// 1)
	Pirate p1 = new Pirate(); // ํด๋ž˜์Šค
	p1.name = "๋ชฝํ‚ค D. ๋ฃจํ”ผ";
	p1.nickName = "๋ฐ€์งš๋ชจ์ž";
	p1.gender = 'M';
	p1.birth = "5์›” 5์ผ";
	p1.age = 19;
	p1.height = 174;
	p1.hobby = new ArrayList<String>(); // ๋ฐฐ์—ด ์ƒ์„ฑ
	p1.hobby.add("๋ชจํ—˜"); // ์ทจ๋ฏธ ์ถ”๊ฐ€
	p1.hobby.add("์ž”์น˜");
	p1.blood = "Fํ˜•";
	p1.country = "์ด์ŠคํŠธ ๋ธ”๋ฃจ ๊ณ ์•„ ์™•๊ตญ ํ›„์ƒค ๋งˆ์„";
	p1.money = 3000000000L;
	p1.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p1.isDevilFruit = true;
	list.add(p1); // ๋ฐฐ์—ด์— ์ถ”๊ฐ€
	
	Pirate p2 = new Pirate();
	p2.name = "๋กค๋กœ๋…ธ์•„ ์กฐ๋กœ";
	p2.nickName = "ํ•ด์  ์‚ฌ๋ƒฅ๊พผ";
	p2.gender = 'M';
	p2.birth = "11์›” 11์ผ";
	p2.age = 21;
	p2.height = 181;
	p2.hobby = new ArrayList<String>();
	p2.hobby.add("์Œ์ฃผ");
	p2.hobby.add("์ˆ˜ํ–‰");
	p2.blood = "XFํ˜•";
	p2.country = "์ด์ŠคํŠธ ๋ธ”๋ฃจ ์‹œ๋ชจ์ธ ํ‚ค ๋งˆ์„";
	p2.money = 1111000000L;
	p2.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p2.isDevilFruit = false;
	list.add(p2);
	
	Pirate p3 = new Pirate();
	p3.name = "๋‚˜๋ฏธ";
	p3.nickName = "๋„๋‘‘๊ณ ์–‘์ด";
	p3.gender = 'F';
	p3.birth = "7์›” 3์ผ";
	p3.age = 20;
	p3.height = 170;
	p3.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p3.blood = "Xํ˜•";
	p3.country = "์ด์ŠคํŠธ ๋ธ”๋ฃจ ์˜ค์ด์ฝ”ํŠธ ์™•๊ตญ";
	p3.money = 366000000L;
	p3.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p3.isDevilFruit = false;
	list.add(p3);
	
	Pirate p4 = new Pirate();
	p4.name = "์šฐ์†";
	p4.nickName = "๊ฐ“(GOD)";
	p4.gender = 'M';
	p4.birth = "4์›” 1์ผ";
	p4.age = 19;
	p4.height = 176;
	p4.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p4.blood = "Sํ˜•";
	p4.country = "์ด์ŠคํŠธ ๋ธ”๋ฃจ ์‹œ๋กญ ๋งˆ์„";
	p4.money = 500000000L;
	p4.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p4.isDevilFruit = false;
	list.add(p4);
	
	Pirate p5 = new Pirate();
	p5.name = "์ƒ๋””";
	p5.nickName = "๊ฒ€์€ ๋‹ค๋ฆฌ";
	p5.gender = 'M';
	p5.birth = "3์›” 2์ผ";
	p5.age = 21;
	p5.height = 180;
	p5.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p5.blood = "Rh- Sํ˜•";
	p5.country = "๋…ธ์Šค ๋ธ”๋ฃจ ์ œ๋ฅด๋งˆ ์™•๊ตญ";
	p5.money = 1032000000L;
	p5.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p5.isDevilFruit = false;
	list.add(p5);
	
	Pirate p6 = new Pirate();
	p6.name = "ํ† ๋‹ˆํ† ๋‹ˆ ์ตธํŒŒ";
	p6.nickName = "์†œ์‚ฌํƒ•๊ด‘";
	p6.gender = 'M';
	p6.birth = "12์›” 24์ผ";
	p6.age = 17;
	p6.height = 90;
	p6.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p6.blood = "Xํ˜•";
	p6.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ ์‚ฌ์ฟ ๋ผ ์™•๊ตญ(๊ตฌ ๋“œ๋Ÿผ ์™•๊ตญ)";
	p6.money = 1000L;
	p6.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p6.isDevilFruit = true;
	list.add(p6);
	
	Pirate p7 = new Pirate();
	p7.name = "๋‹ˆ์ฝ” ๋กœ๋นˆ";
	p7.nickName = "์•…๋งˆ์˜ ์•„์ด";
	p7.gender = 'F';
	p7.birth = "2์›” 6์ผ";
	p7.age = 30;
	p7.height = 188;
	p7.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p7.blood = "Sํ˜•";
	p7.country = "์›จ์ŠคํŠธ ๋ธ”๋ฃจ ์˜คํ•˜๋ผ";
	p7.money = 930000000L;
	p7.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p7.isDevilFruit = true;
	list.add(p7);
	
	Pirate p8 = new Pirate();
	p8.name = "์ปคํ‹ฐ ํ”„๋žŒ";
	p8.nickName = "ํ”„๋ž‘ํ‚ค";
	p8.gender = 'M';
	p8.birth = "3์›” 9์ผ";
	p8.age = 36;
	p8.height = 240;
	p8.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p8.blood = "XFํ˜•";
	p8.country = "์‚ฌ์šฐ์Šค ๋ธ”๋ฃจ";
	p8.money = 394000000L;
	p8.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p8.isDevilFruit = false;
	list.add(p8);
	
	Pirate p9 = new Pirate();
	p9.name = "๋ธŒ๋ฃฉ";
	p9.nickName = "์†Œ์šธ ํ‚น";
	p9.gender = 'M';
	p9.birth = "4์›” 3์ผ";
	p9.age = 90;
	p9.height = 277;
	p9.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p9.blood = "Xํ˜•";
	p9.country = "์›จ์ŠคํŠธ ๋ธ”๋ฃจ";
	p9.money = 383000000L;
	p9.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p9.isDevilFruit = true;
	list.add(p9);
	
	Pirate p10 = new Pirate();
	p10.name = "์ง•๋ฒ ";
	p10.nickName = "๋ฐ”๋‹ค์˜ ํ˜‘๊ฐ";
	p10.gender = 'M';
	p10.birth = "4์›” 2์ผ";
	p10.age = 46;
	p10.height = 301;
	p10.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p10.blood = "Fํ˜•";
	p10.country = "์šฉ๊ถ ์™•๊ตญ ์–ด์ธ๊ฐ€";
	p10.money = 1100000000L;
	p10.group = "๋ฐ€์งš๋ชจ์ž ์ผ๋‹น";
	p10.isDevilFruit = false;
	list.add(p10);
	
	Pirate p11 = new Pirate();
	p11.name = "์—๋“œ์›Œ๋“œ ๋‰ด๊ฒŒ์ดํŠธ";
	p11.nickName = "ํฐ ์ˆ˜์—ผ";
	p11.gender = 'M';
	p11.birth = "4์›” 6์ผ";
	p11.age = 72;
	p11.height = 666;
	p11.hobby = new ArrayList<String>();
	p11.hobby.add("์ €๊ธˆ");
	p11.blood = "Fํ˜•";
	p11.country = "์‹ ์„ธ๊ณ„ ์Šคํ•‘ํฌ์Šค";
	p11.money = 5046000000L;
	p11.group = "ํฐ ์ˆ˜์—ผ ํ•ด์ ๋‹จ";
	p11.isDevilFruit = true;
	list.add(p11);
	
	Pirate p12 = new Pirate();
	p12.name = "์นด์ด๋„";
	p12.nickName = "๋ฐฑ์ˆ˜";
	p12.gender = 'M';
	p12.birth = "5์›” 1์ผ";
	p12.age = 59;
	p12.height = 710;
	p12.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p12.blood = "Fํ˜•";
	p12.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ ๋ณด๋“œ์นด ์™•๊ตญ";
	p12.money = 4611100000L;
	p12.group = "๋ฐฑ์ˆ˜ ํ•ด์ ๋‹จ";
	p12.isDevilFruit = true;
	list.add(p12);
	
	Pirate p13 = new Pirate();
	p13.name = "์ƒฌ๋กฏ ๋ง๋ง";
	p13.nickName = "๋น… ๋ง˜";
	p13.gender = 'F';
	p13.birth = "2์›” 15์ผ";
	p13.age = 68;
	p13.height = 880;
	p13.hobby = new ArrayList<String>();
	p13.hobby.add("๋‹ค๊ณผํšŒ");
	p13.hobby.add("์ง„๊ท€ํ•œ ๋™๋ฌผ ์ˆ˜์ง‘");
	p13.blood = "Xํ˜•";
	p13.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ";
	p13.money = 4388000000L;
	p13.group = "๋น… ๋ง˜ ํ•ด์ ๋‹จ";
	p13.isDevilFruit = true;
	list.add(p13);
	
	Pirate p14 = new Pirate();
	p14.name = "์ƒนํฌ์Šค";
	p14.nickName = "๋นจ๊ฐ„ ๋จธ๋ฆฌ";
	p14.gender = 'M';
	p14.birth = "3์›” 9์ผ";
	p14.age = 39;
	p14.height = 199;
	p14.hobby = new ArrayList<String>();
	p14.hobby.add("๋ฐฉ๋ž‘");
	p14.blood = "XFํ˜•";
	p14.country = "์›จ์ŠคํŠธ ๋ธ”๋ฃจ ๊ฐ“๋ฐธ๋ฆฌ";
	p14.money = 4048900000L;
	p14.group = "๋นจ๊ฐ„ ๋จธ๋ฆฌ ํ•ด์ ๋‹จ";
	p14.isDevilFruit = false;
	list.add(p14);
	
	Pirate p15 = new Pirate();
	p15.name = "๋งˆ์ƒฌ D ํ‹ฐ์น˜";
	p15.nickName = "๊ฒ€์€ ์ˆ˜์—ผ";
	p15.gender = 'M';
	p15.birth = "8์›” 3์ผ";
	p15.age = 40;
	p15.height = 344;
	p15.hobby = new ArrayList<String>();
	p15.hobby.add("๋„๋ฐ•(๊ฒœ๋ธ”๋ง)");
	p15.hobby.add("์—ญ์‚ฌ ํƒ๊ตฌ");
	p15.blood = "Fํ˜•";
	p15.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ";
	p15.money = 3996000000L;
	p15.group = "๊ฒ€์€ ์ˆ˜์—ผ ํ•ด์ ๋‹จ";
	p15.isDevilFruit = true;
	list.add(p15);
	
	Pirate p16 = new Pirate();
	p16.name = "ํŠธ๋ผํŒ”๊ฐ€ D ์›จํ…” ๋กœ";
	p16.nickName = "์ฃฝ์Œ์˜ ์™ธ๊ณผ์˜";
	p16.gender = 'M';
	p16.birth = "10์›” 6์ผ";
	p16.age = 26;
	p16.height = 191;
	p16.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p16.blood = "Fํ˜•";
	p16.country = "๋…ธ์Šค ๋ธ”๋ฃจ ํ”„๋ ˆ๋ฐ˜์Šค";
	p16.money = 3000000000L;
	p16.group = "ํ•˜ํŠธ ํ•ด์ ๋‹จ";
	p16.isDevilFruit = true;
	list.add(p16);
	
	Pirate p17 = new Pirate();
	p17.name = "๋ฒ„๊ธฐ";
	p17.nickName = "์ฒœ๋ƒฅ๊ด‘๋Œ€";
	p17.gender = 'M';
	p17.birth = "8์›” 8์ผ";
	p17.age = 39;
	p17.height = 192;
	p17.hobby = new ArrayList<String>();
	p17.hobby.add("๋ณด๋ฌผ์ง€๋„ ๋ชจ์œผ๊ธฐ");
	p17.blood = "Fํ˜•";
	p17.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ";
	p17.money = 3189000000L;
	p17.group = "ํฌ๋กœ์Šค ๊ธธ๋“œ";
	p17.isDevilFruit = true;
	list.add(p17);
	
	Pirate p18 = new Pirate();
	p18.name = "๋งˆ๋ฅด์ฝ”";
	p18.nickName = "๋ถˆ์‚ฌ์กฐ";
	p18.gender = 'M';
	p18.birth = "10์›” 5์ผ";
	p18.age = 45;
	p18.height = 203;
	p18.hobby = new ArrayList<String>();
	p18.hobby.add("๋ฐ”์˜ ์ฝ”์Šคํ„ฐ ์ˆ˜์ง‘");
	p18.blood = "Xํ˜•";
	p18.country = "์œ„๋Œ€ํ•œ ํ•ญ๋กœ";
	p18.money = 1374000000L;
	p18.group = "์Šคํ•‘ํฌ์Šค";
	p18.isDevilFruit = true;
	list.add(p18);
	
	Pirate p19 = new Pirate();
	p19.name = "์ฅฌ๋ผํด ๋ฏธํ˜ธํฌ";
	p19.nickName = "๋งค์˜ ๋ˆˆ";
	p19.gender = 'M';
	p19.birth = "3์›” 9์ผ";
	p19.age = 43;
	p19.height = 198;
	p19.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p19.blood = "Sํ˜•";
	p19.country = "";
	p19.money = 3590000000L;
	p19.group = "ํฌ๋กœ์Šค ๊ธธ๋“œ";
	p19.isDevilFruit = false;
	list.add(p19);
	
	Pirate p20 = new Pirate();
	p20.name = "๊ณจ D ์—์ด์Šค";
	p20.nickName = "๋ถˆ์ฃผ๋จน";
	p20.gender = 'M';
	p20.birth = "1์›” 1์ผ";
	p20.age = 20;
	p20.height = 185;
	p20.hobby = null; // ์ทจ๋ฏธ๊ฐ€ ์—†์Œ
	p20.blood = "Sํ˜•";
	p20.country = "์‚ฌ์šฐ์Šค ๋ธ”๋ฃจ ๋ฐ”ํ…Œ๋ฆฌ๋ผ";
	p20.money = 550000000L;
	p20.group = "ํฐ ์ˆ˜์—ผ ํ•ด์ ๋‹จ";
	p20.isDevilFruit = true;
	list.add(p20);
	
	System.out.println(list.size() + "<-- list.size()"); // 20
	// ๋””๋ฒ„๊น… ์ฝ”๋“œ, 20๊ฐœ๊ฐ€ ์ž‘์„ฑ์ด ์ž˜ ๋๋Š”์ง€
	
	// ๊ฒ€์ƒ‰์กฐ๊ฑด์— ๋”ฐ๋ผ ํ•„ํ„ฐ๋ง๋  list2๋ฅผ ์ƒ์„ฑ
	ArrayList<Pirate> list2 = new ArrayList<Pirate>();
	
	char gender = ' ';
	if(request.getParameter("gender") != null) { // ์ฆ‰, ์–ด๋–ค ๊ฐ’์„ form์—์„œ ์„ ํƒํ–ˆ๋‹ค๋ฉด
		gender = request.getParameter("gender").charAt(0); // option์—์„œ ๋ฐ›์•„์˜ค๋Š” ๊ฐ’์ด string ํƒ€์ž… ์ด๋ฏ€๋กœ ์•ž์— ์ฒซ ๊ธ€์ž๋ฅผ ๊ฐ€์ ธ์™€์„œ charํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ
	} // form์—์„œ ์„ ํƒํ•œ ๊ฐ’์ด๋‹ˆ๊นŒ request.getParameter๋กœ ๋ถˆ๋Ÿฌ์™€์„œ gender ๋ณ€์ˆ˜์— M or F ๋„ฃ๊ธฐ
	// gender๋Š” ' ' or 'M' or 'F' 
	
	/*
	if(gender == ' ') {
		list2 = list;
	} else if(gender == 'M') {
		for(Pirate p : list) {
			if(p.gender == 'M') {
				list2.add(p);
			}
		}
	} else { // gender == 'F'
		for(Pirate p : list) {
			if(p.gender == 'F') {
				list2.add(p);
			}
		}
	}
	*/
	
	if(gender == ' ') {
		list2 = list;
	} else {
		for(Pirate p : list) {
			if(p.gender == gender) {
				list2.add(p);
			}
		}
	}
	
	System.out.println(list2.size() + "<-- list2.size()");
	// ๋””๋ฒ„๊น… ์ฝ”๋“œ
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>onepiece.jsp</title>
	<style>
		table, th, td {border: 1px solid #000000; text-align: center;}
		table {border-collapse: collapse;}
		.small {width: 30px; height: 30px;}
	</style>
</head>
<body>
	<h1>๋“ฑ์žฅ์ธ๋ฌผ ๋ฆฌ์ŠคํŠธ</h1>
	<h3>
		<div>
			์ „์ฒด <%=list.size()%>๋ช… <!-- ๋ฐฐ์—ด์˜ ์ „์ฒด ์‚ฌ์ด์ฆˆ ์ถœ๋ ฅ -->
		</div>
	</h3>
	
	<form action="./onepiece.jsp" method="post"> <!-- ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง ํ•˜๊ธฐ -->
		<select name="gender">
			<option value="M">๋‚จ์ž</option>
			<option value="F">์—ฌ์ž</option>
		</select>
		<div>
			<button type="submit">๊ฒ€์ƒ‰</button>
		</div>
	</form>
	
	<table>
		<tr>
			<th>์ด๋ฆ„</th>
			<th>๋ณ„๋ช…</th>
			<th>์„ฑ๋ณ„</th>
			<th>์ƒ์ผ</th>
			<th>๋‚˜์ด</th>
			<th>ํ‚ค</th>
			<th>์ทจ๋ฏธ</th>
			<th>ํ˜ˆ์•กํ˜•</th>
			<th>์ถœ์‹ ์ง€</th>
			<th>ํ˜„์ƒ๊ธˆ</th>
			<th>์†Œ์†</th>
			<th>์•…๋งˆ์˜ ์—ด๋งค</th>
		</tr>
		<%
			for(Pirate p : list2) { // ํ•„ํ„ฐ๋ง ๋œ list2 ์ถœ๋ ฅ
		%>
				<tr>
					<td><%=p.name%></td>
					<td><%=p.nickName%></td>
					<td>
						<%
							if(p.gender == 'M') {
						%>
								<img class="small" src="./img/man.jpg">
						<%
							} else {
						%>
								<img class="small" src="./img/woman.jpg">
						<%
							}
						%>
					</td>
					<td><%=p.birth%></td>
					<td><%=p.age%>์„ธ</td>
					<td><%=p.height%>cm</td>
					<td>
						<%
							if(p.hobby != null){ // ์ทจ๋ฏธ์— ๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ foreach๋ฌธ ์‹คํ–‰
								int cnt = 1; // foreach๋ฌธ ๋ฐ–์—์„œ ๋ณ€์ˆ˜ ์ƒ์„ฑ
								for(String h : p.hobby) {
						%>
									<%=h%>
						<%
									if(cnt<p.hobby.size()) { // ์ทจ๋ฏธ ์‚ฌ์ด์‚ฌ์ด์— ์‰ผํ‘œ(,) ์ž…๋ ฅ
						%>
										,
						<%
									}
									cnt = cnt + 1; // ๋งˆ์ง€๋ง‰์—” ์‰ผํ‘œ(,)๊ฐ€ ์•ˆ๋‚˜์˜ค๋„๋ก
								}
							}
						%>
					</td>
					<td><%=p.blood%></td>
					<td><%=p.country%></td>
					<td><%=p.money%>๋ฒ ๋ฆฌ</td>
					<td><%=p.group%></td>
					<td>
						<%
							if(p.isDevilFruit == true) {
						%>
								<img class="small" src="./img/fruit_o.jpg">
						<%
							} else {
						%>
								<img class="small" src="./img/fruit_x.jpg">
						<%					
							}
						%>
					</td>
				</tr>
		<%
			}
		%>
	</table>
</body>
</html>

โœ” ์ถ”๊ฐ€๋œ ๋‚ด์šฉ

  • form action ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰์กฐ๊ฑด(์„ฑ๋ณ„) ์„ ํƒ์ด ๊ฐ€๋Šฅํ•œ select form ์ƒ์„ฑํ•˜๊ธฐ, button type์€ submit์ธ ๊ฒƒ ์žŠ์ง€ ๋ง๊ธฐ!
  • ์ฃผ์†Œ๋Š” ํ˜„์žฌ ํŽ˜์ด์ง€("./onepiece.jsp")๋กœ ์ง€์ •

  • ArrayList<Pirate> list2 = new ArrayList<Pirate>(); : ๊ฒ€์ƒ‰ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ถœ๋ ฅ๋  list2๋ฅผ ๋”ฐ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
  • char gender = ' '; : Pirate ํด๋ž˜์Šค์˜ gender ํƒ€์ž…์€ char ํƒ€์ž…์ด๋ฏ€๋กœ ๋™์ผํ•œ ํƒ€์ž…์˜ ๋ณ€์ˆ˜ ์ƒ์„ฑ, char ํƒ€์ž…์€ null์„ ์ž…๋ ฅํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๊ณต๋ฐฑ ์œผ๋กœ ์ž…๋ ฅ.
  • if(request.getParameter("gender") != null) : form action ํƒœ๊ทธ์—์„œ ๊ฐ’์ด ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ (์„ ํƒ๋˜์—ˆ๋Š”์ง€) , ์ด๋•Œ ๋ฐ›์•„์˜ค๊ฒŒ๋  option์˜ value๊ฐ’์€ "M" ๋˜๋Š” "F" ์ด๋ฉฐ, ํƒ€์ž…์€ String ํƒ€์ž…์ด ๋œ๋‹ค.
  • charAt(0) : String ํƒ€์ž…์˜ ๊ฐ’์—์„œ ์ฒซ๋ฒˆ์งธ(0๋ฒˆ์งธ) ๊ธ€์ž๋ฅผ ๊ฐ€์ ธ์™€์„œ char ํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฉ”์†Œ๋“œ

  • ํ•„ํ„ฐ๋ง๋œ charํƒ€์ž… gender์˜ ๊ฐ’(M ๋˜๋Š” F ๋˜๋Š” ๊ณต๋ฐฑ)์„ list2์— ์ถ”๊ฐ€ํ•˜๊ธฐ
  • ๊ณต๋ฐฑ์ผ ๊ฒฝ์šฐ, list2์— ๊ธฐ์กด์˜ ๋ชจ๋“  ์„ฑ๋ณ„๊ฐ’์ด ๋ณด์—ฌ์ง€๋Š” list๋ฅผ ๋Œ€์ž…
  • p.gender์˜ ๊ฐ’์ด gender์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ, ์ฆ‰ M ๋˜๋Š” F ๊ฐ’๋งŒ list2์— ์ถ”๊ฐ€ํ•˜๊ธฐ

  • ์ „์ฒด foreach๋ฌธ for(Pirate p : list2)๋กœ ์ˆ˜์ •.

๐Ÿ“ ๊ฒฐ๊ณผ

์„ฑ๋ณ„ ์„ ํƒ select ํƒœ๊ทธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

์—ฌ์ž ์„ ํƒ ์‹œ ์ถœ๋ ฅ ํ™”๋ฉด

๋‚จ์ž ์„ ํƒ ์‹œ ์ถœ๋ ฅ ํ™”๋ฉด

๐Ÿ’ก External CSS

๊ธฐ์กด์— ๋ฐฐ์› ๋˜ Internal ๋ฐฉ์‹ (ํด๋ž˜์Šค๋‚˜ id๋ฅผ ์ด์šฉํ•˜์—ฌ styleํƒœ๊ทธ์—์„œ ์ ์šฉ)๊ณผ Inline ๋ฐฉ์‹ (htmlํƒœ๊ทธ์— ์ง์ ‘ ์ ์šฉ) ์™ธ์— ๋˜๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ธ External ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€๋กœ ๋ฐฐ์› ๋‹ค.

๐Ÿ“Œ CSS ํŒŒ์ผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ธฐ

๋ง๊ทธ๋Œ€๋กœ css ํŒŒ์ผ์„ ๋”ฐ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์ ์šฉ์‹œํ‚ค๋Š” ๋ฐฉ์‹์ด๋‹ค.
๐Ÿง์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๋งํฌ

๐Ÿ“ css ํŒŒ์ผ ์ƒ์„ฑ - myStyle.css

@charset "UTF-8";
.x {color: #00FF00;}
table, th, td {border: 1px solid #000000; text-align: center;}
table {border-collapse: collapse;}
  • ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ Internal ๋ฐฉ์‹์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค. ํŒŒ์ผ๋งŒ ์™ธ๋ถ€์— ๋”ฐ๋กœ ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

๐Ÿ“ ์ ์šฉํ•˜๊ธฐ

<link rel="stylesheet" href="./myStyle.css">
  • ๊ธฐ์กด style ํƒœ๊ทธ์˜ ์œ„์น˜์™€ ๋™์ผํ•œ head ํƒœ๊ทธ ์•ˆ์— ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
  • ์‚ฌ์šฉ ๋˜ํ•œ Internal ๋ฐฉ์‹์ฒ˜๋Ÿผ ํด๋ž˜์Šค ๋˜๋Š” id๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ“Œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ5 ์‚ฌ์šฉํ•˜๊ธฐ

๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  css ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. href ๋งํฌ์—๋Š” ์™ธ๋ถ€๋งํฌ๋„ ์ž…๋ ฅ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ5๋ฅผ ์ ๊ทน ํ™œ์šฉํ•˜๋ฉด ๋‹ค์ฑ„๋กœ์šด css๋ฅผ ํŽธํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค!
๐Ÿง์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๋งํฌ

๐Ÿ“ ๋งํฌ ๊ฐ€์ ธ์˜ค๊ธฐ

<!-- Latest compiled and minified CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">

<!-- Latest compiled JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  • ์œ„ ๋งํฌ์—์„œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ5๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋งํฌ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
  • ์œ„์น˜์™€ ์‚ฌ์šฉ๋ฐฉ์‹์€ ๋™์ผํ•˜๋‹ค.

๐Ÿ“ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

<body>
<div class="container-fluid">
<!-- bodyํƒœ๊ทธ์— ์ง์ ‘ class๋ฅผ ์ฃผ๋Š” ๊ฒƒ์€ ์œ„ํ—˜ํ•ด์„œ div๋กœ ์ „์ฒด๋ฅผ ๋ฌถ์Œ -->
	<table class="table table-striped table-dark">
    <!-- class๋ช… ์—ฌ๋Ÿฌ๊ฐœ ์ถ”๊ฐ€ํ• ๋–ˆ ๋นˆ์นธ -->
		<thead>
			<tr>
				<th>์ด๋ฆ„</th>
				<th>์„ฑ๋ณ„</th>
				<th>๋‚˜์ด</th>
			</tr>
		</thead>
		
		<tbody>
			<%
				for(Person p : list) {
			%>
					<tr>
						<td><%=p.name%></td>
						<td><%=p.gender%></td>
						<td><%=p.age%></td>
					</tr>
			<%
				}
			%>
		</tbody>
	</table>
	
<div class="row">
	<div class="col-sm-6">
		<h1>์ฒซ๋ฒˆ์งธ ์ œ๋ชฉ</h1>
		<table class="table table-hover">
			<tr>
				<td>์•ˆ๋…•</td>
				<td>ํ•˜์„ธ์š”</td>
				<td>์•ˆ๋…•</td>
			</tr>
			<tr>
				<td>์•ˆ๋…•</td>
				<td>ํ•˜์„ธ์š”</td>
				<td>์•ˆ๋…•</td>
			</tr>
		</table>
	</div>
	<div class="col-sm-6">
		<h1>๋‘๋ฒˆ์งธ ์ œ๋ชฉ</h1>
		<table class="table table-hover">
			<tr>
				<td>์•ˆ๋…•</td>
				<td>ํ•˜์„ธ์š”</td>
				<td>์•ˆ๋…•</td>
			</tr>
			<tr>
				<td>์•ˆ๋…•</td>
				<td>ํ•˜์„ธ์š”</td>
				<td>์•ˆ๋…•</td>
			</tr>
			<tr>
				<td>์•ˆ๋…•</td>
				<td>ํ•˜์„ธ์š”</td>
				<td>์•ˆ๋…•</td>
			</tr>
		</table>
	</div>
</div>
  • ์‚ฌ์ดํŠธ๋ฅผ ๋ณด๊ณ  ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ณจ๋ผ ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ ์šฉ๋œ๋‹ค.
  • ํด๋ž˜์Šค๋ช…์„ ์—ฌ๋Ÿฌ๊ฐœ ์ถ”๊ฐ€ํ•  ๋•Œ์—๋Š” ๊ณต๋ฐฑ์„ ์ด์šฉํ•œ๋‹ค.
  • container ๊ธฐ๋Šฅ์€ divํƒœ๊ทธ๋ฅผ ์ด์šฉํ•œ๋‹ค.
  • Grids ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ™”๋ฉด์„ ๋‚˜๋ˆ ์„œ ํ‘œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. 4์ผ์ฐจ๋•Œ์ฒ˜๋Ÿผ ๋ณต์žกํ•˜๊ฒŒ ํ•˜์ง€ ์•Š์•„๋„ ๊ฐ€๋Šฅํ•˜๋‹ค!

๐Ÿ“ ๊ฒฐ๊ณผ



profile
ํ•˜๋ฃจ ํ•œ๊ฑธ์Œ์”ฉ๐Ÿ’ช ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž ๋„์ „๊ธฐ ๐ŸŒฑ๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€