체크박스와 getParameterValues()
사용자가 여러 개의 항목을 선택할 수 있도록 하는 입력 양식
HTML에서 여러 개의 항목을 선택 후, 전송하면 퀴리 스트링에 동일한 이름으로 여러 개의 값들이 전송됨
체크박스와 getParameterValues() (계속)
체크박스에서 전송된 여러 개의 값은 서블릿에서 getParameterValues()를 사용하여 읽는다.
서블릿에서는 지정한 이름을 가진 모든 파라미터의 값을 배열 형태로 가져온다.
<JSP 파일>
<%@ 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>
<h3>악세사리</h3>
관심항목을 선택하세요.
<hr>
<form method="get" action="CheckboxServlet">
<input type="checkbox" name="item" value="신발">신발
<input type="checkbox" name="item" value="가방">가방
<input type="checkbox" name="item" value="벨트">벨트
<input type="checkbox" name="item" value="모자">모자
<input type="checkbox" name="item" value="시계">시계
<input type="checkbox" name="item" value="주얼리">주얼리
<br><br>
<input type="submit" value="확인">
</form>
</body>
</html>
<Servlet 파일>
package unit05;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class CheckboxServlet
*/
@WebServlet("/CheckboxServlet")
public class CheckboxServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public CheckboxServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
// 입력한 데이터 수신
// 여러개의 값을 수신할 때 getParameterValues()를 이용
String items[] = request.getParameterValues("item");
PrintWriter out = response.getWriter();
out.println("<html><head></head><body>");
if(items == null) {
out.println("선택한 항목이 없습니다.");
} else {
out.println("당신이 선택한 항목입니다.<br>");
for(String item: items) {
out.println("[" + item + "] ");
}
}
out.println("<br><a href='javascript.history.go(-1)'>다시</a>");
out.println("</body></html>");
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
유효성 검사를 통하여 선택되지 않았을 경우에는 선택하지 않았다는 페이지를 보여주고
여러개가 선택되었을 경우는 배열형태로 저장해 각각을 출력한다.
728x90
반응형
'JSP, Servlet > JSP, Servlet 기초' 카테고리의 다른 글
[JSP/Servlet] 회원가입 페이지 만들기 실습 (0) | 2020.08.10 |
---|---|
[JSP/Servlet] 콤보박스, 리스트박스(<select>) (0) | 2020.08.10 |
[JSP/Servlet] 라디오버튼 실습 (0) | 2020.08.10 |
[JSP/Servlet] textarea와 라디오버튼 (0) | 2020.08.10 |
[JSP/Servlet] 입력정보 유효성 확인하기 (0) | 2020.08.10 |