// 요청 파라미터의 캐릭터 인코딩을 한글로 하기 위한것 request.setCharacterEncoding("utf-8"); // 서버 형태의 한글의 출력을 원활하게 해 주는 역할을 한다.
response.setContentType("text/html; charset=utf-8"); PrintWriter out = response.getWriter();
// 퀴리 스트링으로 넘어온 값들을 저장할 변수 선언 String id = "", name = "", mclass = "", phone1 = "", phone2 = "", phone3 = "";
// 요청객체(request)의 getParameter 메소드로 퀴리 스트링으로 넘어온 값을 얻어옴 id = request.getParameter("id"); name = request.getParameter("name"); mclass = request.getParameter("mclass"); phone1 = request.getParameter("phone1"); phone2 = request.getParameter("phone2"); phone3 = request.getParameter("phone3");
// PrintWriter out = response.getWriter(); 에서 얻어온 출력 객체를 사용하여 웹 브라우저에 html 문서에서 입력한 내용을 출력한다. out.println("<html><head>입력식 태그와 퀴리 스트링 출력값</head><body>"); out.println("당신이 입력한 정보 입니다.<br/>"); out.println("아이디 : <b>"); out.println(id); out.println("</b><br/>이름 : <b>"); out.println(name); out.println("</b><br/>구분 : <b>"); out.println(mclass); out.println("</b><br/>전화번호 : <b>"); out.println(phone1); out.println("-"); out.println(phone2); out.println("-"); out.println(phone3); out.println("</b><br/><a href = 'javascript:history.go(-1)'>다시</a>"); out.println("</body></html>");
out.close(); } }
출력화면
■ getParameterValues 메소드
입력 양식을 설계하다 보면 이름을 동일하게 주어서 여러 개의 입력 양식들을 만들어 놓고 동일한 이름의 입력 양식에서값을 동시에 받아 오게 될 경우가 있다.
동일한 이름의 체크 박스가 여러개 있는 HTML 문서에서 여러개의 항목을 선택한 후 이름 서블릿 파일로 전송하면 다음과 같이 쿼리 스트링에 동일한 이름으로 여러 개의 값들이 여러차례 전송되는 것을 확인할 수 있다.
이럴 경우 요청(request)객체의 파라미터 관련 메소드 중에서 getParameterValues 메소드를 사용해야 한다. getParameterValues 메소드는 지정한 이름을 가진 파라미터의 모든 값을 배열 형태로 얻어오기 때문에 동일한 이름으로 여러 번 값이 전송되어도 처리가 가능하게 된다.
※ 선택된 항목이 없더라도 서블릿에서 이에 대한 적당한 메시지를 출력하도록 프로그래밍 해야 한다.
multPara.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>이름을 동일하게 주어 체크 박스 여러 개 만들기</title> </head> <body> <form method = "get" action = "servlet/multiPara"> <h2>악세사리</h2><br/> 관심항목을 선택하세요...<br/> <hr/> <input type = "checkbox" name = "item" value = "신발"> 신발 <input type = "checkbox" name = "item" value = "가방"> 가방 <input type = "checkbox" name = "item" value = "벨트"> 벨트<br/> <input type = "checkbox" name = "item" value = "모자"> 모자 <input type = "checkbox" name = "item" value = "시계"> 시계 <input type = "checkbox" name = "item" value = "쥬얼리"> 쥬얼리<br/><br/> <input type = "submit" value = "전송"> <input type = "reset" value = "취소"> </form> </body> </html>
request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8"); PrintWriter out = response.getWriter(); String []item; // 여러개의 값을 저장하기 위한 배열