개발 일지/JSP, Sevlet

[JSP] while 문 연습문제

박빙수_ 2024. 1. 11. 17:05

JSP부터는 수업이 굉장히 빠르게 실습 없이 진행되고 있어, 내가 어느정도로 이해하고 있는지 알 수 없게 되었다. 그래서 대신 스터디에서 실습용 문제를 각자 내주는 방식으로 진행을 해보자는 의견이 나왔다. 그 기록의 첫 번째로 while문을 살펴보면서 내가 새로 알게 된 부분을 적고자 한다.


while-test.jsp

<%@ page contentType="text/html;charset=UTF-8"%>
<h1>While Example</h1>
<%
//1. 입력값 한글 안 깨지도록 인코딩 /힌트 : request.

//2. msg를 입력한 횟수만큼 반복하는 while 문 쓰기 /힌트 : 변수 선언(입력값 2개 + 임의값 1개)
%>

 

while-test.html

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
	</head>
	<body>
		<h1>While Example</h1>
		<form method="post" action="while-test.jsp">
			<p>반복하고 싶은 문구 : <input name="msg" size="20"></p>
			<p>반복하고 싶은 횟수 : <input name="number"></p>
			<input type="submit" value="보내기">
		</form>
	</body>
</html>

  1. 입력값 안 깨지도록 한글 인코딩은 request.setCharacterEncoding을 활용한다.
    • 매번 모든 jsp마다 입력해줘야하는 건가?
  2. java를 입력하는 란인 스크립트 태그(<% ... %>)는 겹치게 쓸 수 없다. 따라서 HTML을 시작하려면 먼저 스크립트 태그를 닫아줘야 한다.
  3. 선언은 필수... 잊지 말고 꼭 하기.
  4. 숫자 텍스트는 Integer로 파싱하는 과정 거쳐야 함.
    • request.getParameter("number") 메서드는 HTML 폼에서 number라는 이름으로 전송된 값을 문자열로 반환한다.
    • Integer.parseInt() 메서드는 문자열을 int 타입으로 변환한다.

 

 

문제 답은 아래에

더보기

while-test.jsp

<%@ page contentType="text/html;charset=UTF-8"%>
<h1>While Example</h1>
<%
 	 request.setCharacterEncoding("UTF-8");
	 String msg = request.getParameter("msg");
 	 int number = Integer.parseInt(request.getParameter("number"));
 	 int count = 0;
 	 
 	 while(number>count){
%>
<b><%=msg%></b><br/>
<%
    	count++;
   }
%>

내가 쓴 답

더보기
<%@ page contentType="text/html;charset=UTF-8"%>
<h1>While Example</h1>
<%
request.setCharacterEncoding("UTF-8");
String msg = request.getParameter("msg");
int number = Integer.parseInt(request.getParameter("number"));
int i = 0;

while (i<number){
%>
	<%=msg%>;
<%
	i++;
}
%>