JSP&Servlet/기초정리
JSP 기초 - 랜덤 실습
줘니(•̀ᴗ•́)و
2023. 2. 2. 16:04
728x90
* 이렇게 구현하기
1) HTML 파일
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Ex02createInput.jsp">
<fieldset style="width: 300px" align="center">
<legend>랜덤숫자입력</legend>
<input type="number" name="number"> <br>
<input type="submit" value="생성하기">
</fieldset>
</form>
</body>
</html>
2) JSP 파일 1
<%@ 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>
<fieldset style="width: 300px" align="center">
<legend>랜덤당첨 작성</legend>
<form action="Ex02randomWinner.jsp">
주제 : <input type="text" name="title"> <br>
<%
// 1. 데이터 가져오고 형 변환
int number = Integer.parseInt(request.getParameter("number"));
// 2. 반복 출력
for (int i = 0; i < number; i++) {
out.print("아이템" + (i + 1) + " : ");
out.print("<input type='text' name='item'>");
out.print("<br>");
}
%>
<input type="submit" value="시작">
</form>
</fieldset>
</body>
</html>
3) JSP파일 2
<%@ 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>
<%
// 1. 데이터 가져오기
String title = request.getParameter("title");
String[] item = request.getParameterValues("item");
// 2. 랜덤 생성 객체
Random rd = new Random();
int rd_num = rd.nextInt(item.length);
// 3. 한글 인코딩
request.setCharacterEncoding("utf-8");
%>
<fieldset style="width: 300px" align="center">
<legend>랜덤당첨결과</legend>
<p><%=title%></p>
<p><%=item[rd_num]%></p>
</fieldset>
</body>
</html>
★ 데이터 전송 시 name 값이 중복되는 경우 그룹으로 묶어 여러 내용을 한번에 보내기가 가능하다!
이 때, 데이터를 꺼내기 위해 여러 개를 꺼내올 수 있는 getParameterValues()를 사용해야 한다.
그리고 저장할 수 있는 타입 또한 여러 개의 내용을 담을 배열로 지정해주어야 한다!
그리고 Random rd = new Random() 사용을 위해선 import가 필요하기 때문에
ctrl + space를 눌러 import도 시켜주자
출력은 표현식으로 해도 되지만
스크립트릿 안에서 out.print()를 활용하여 출력해도 된다.
728x90