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