request.getParameter("변수명")
사용
문자열(String
) 형식으로만 반환
String a = request.getParameter("cat");
//name이 "cat"인 데이터를 a라는 문자열변수에 담는다.
PrintWriter
: 출력 스트림
PrintWriter out = response.getWriter(); //데이터 출력 스트림 생성
out.print(a)
action
: 데이터를 전송할 경로 지정
name
: 전송할 데이터 지정
submit
: 값을 보낼 시점
<form action = "Ex01Create"> <!--데이터 보낼 주소 지정-->
이름: <input type="text" name="cat"> <!--사용자의 입력값이 cat에 저장-->
<input type="submit"> <!--제출버튼을 누르면 데이터 전송-->
</form>
html
<body> <form action="test1"> num1: <input type = "text" name = "num1"> <select name="op"> <option>+</option> <option>-</option> <option>*</option> <option>/</option> </select> num2: <input type = "text" name = "num2"> <input type="submit" value="cal"> </form> </body>
servlet
int num1= Integer.parseInt(request.getParameter("num1")); int num2= Integer.parseInt(request.getParameter("num2")); String op = request.getParameter("op"); PrintWriter out = response.getWriter(); out.print("<html>"); out.print("<body>"); if(op.equals("+")) { //java처럼 기능구현 가능 out.print(num1 + " + " + num2 + " = " + "<h2>"+ (num1+num2) + "</h2>"); }else if(op.equals("-")){ out.print(num1 + " - " + num2 + " = " + "<h2>"+ (num1-num2) + "</h2>"); }else if(op.equals("*")){ out.print(num1 + " * " + num2 + " = " + "<h2>"+ (num1*num2) + "</h2>"); }else if(op.equals("/")){ out.print(num1 + " / " + num2 + " = " + "<h2>"+ (num1/num2) + "</h2>"); } out.print("</body>"); out.print("<html>");
가장 먼저 지정해준다.
request.setCharactorEncoding("UTF=8");
response.setCharactorEncoding("UTF=8");
출력보다 더 위에 지정해준다.
response.setContentType("text/html; charset=UTF-8");
checkbox
처럼 같은 그룹안에name
이여러개
일때는 어떻게 가져와야할까?
html
사과 <input type="checkbox" name="fruits" value="apple"> 바나나 <input type="checkbox" name="fruits" value="banana"> 오렌지 <input type="checkbox" name="fruits" value="orange">
servlet
//배열 형태로 받아온다. String[] fruits = request.getParameterValues("fruits"); // for~each문 : 배열이나 리스트의 값을 꺼내올 때 유용 for( Strinf f : fruits){ System.out.print( f );}