반응형
이번에 만들 것은 서버로 값을 보낸 이후에 보낸 숫자만큼 Hello Servlet을 브라우저에 출력해볼 것입니다.
이번 예제를 통해서는 파라미터를 서버로 전달하고, 서버에서는 받는 방법을 익힐 수 있습니다.
서버로 데이터를 보낼 HTML 문서
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div>
<form action ="hello">
<div>
<label>서버로 보낼 값</label>
</div>
<div>
<input type ="text" name ="cnt"/>
<input type ="submit" value ="보내기"/>
</div>
</form>
</div>
</body>
</html>
<form> 태그의 action에 매핑된 서블릿을 실행합니다.
<input>에서 속성이 "text"인 태그의 name 값을 기준으로 서버에서 쿼리 스트링을 식별합니다.
받은 파라미터의 수 만큼 문자열을 출력하는 서블릿
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
public void service (HttpServletRequest request
, HttpServletResponse response) throws IOException, ServletException{
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String cnt_temp =request.getParameter("cnt");
int cnt = 101;
if (cnt_temp !=null && !cnt_temp.equals(""))
cnt = Integer.parseInt(cnt_temp);
for (int i =0; i <cnt; i++)
out.println("야호 Hello Servlet <br>");
}
}
다음 코드로 쿼리 스트링을 받습니다.
String cnt_temp = request.getParameter("cnt");
서블릿 코드 중에서 다음과 같이 예외 처리를 한 이유는 쿼리 스트링 값이 빈 값이거나 null로 넘어오는 경우가 있기 때문입니다.
/?cnt=20 → "20"
/?cnt= → ""
/? → null
/ → null
String cnt_temp =request.getParameter("cnt");
int cnt = 101;
if (cnt_temp !=null && !cnt_temp.equals(""))
cnt = Integer.parseInt(cnt_temp);
반응형
'Servlet, JSP' 카테고리의 다른 글
서블릿 필터 (Servlet Filter) 적용하기 (0) | 2021.01.03 |
---|---|
Parameter, Form Data에 담은 한글이 깨지는 문제 해결 (0) | 2021.01.03 |
Servlet에서 인코딩 방식과 컨텐츠 타입을 지정해야 하는 이유 (0) | 2021.01.03 |
Annotation(어노테이션)을 사용한 URL 매핑 (0) | 2021.01.03 |
Eclipse를 사용해 "Hello Servlet" 출력하기 (0) | 2021.01.03 |