[Servlet] 인코딩, 데이터 전송
데이터 요청
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");
name이 여러개일 때!
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 );}
Author And Source
이 문제에 관하여([Servlet] 인코딩, 데이터 전송), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nanana/Servlet-인코딩-방식-지정저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)