20.03 ~ 20.08 국비교육/JSP

폼 전송

찹키리 2020. 4. 22. 10:14

<폼 전송>

폼 구성 요소는 반드시 태그로 감싸야 한다.

-클라이언트

< form
1)method = "post/get"
2)action = "목적지(target)"
>




-----> 폼 전송(to target) ---> 서버의 request 영역에 저장



-서버

<%
request.setCharacterEncoding("euc-kr/UTR-8")
//한글 데이터를 사용한 경우 인코딩을 해야 한다.
//out 명령 이전에 해야 한다(get 전에 set)
out.print(request.getParameter("요소명"))
%>

 

 

 

*한글 지원
euc-ker(기본): 2바이트, 라틴 + 완성형, only 한국어

UTF-8: 영어 + 유니코드(1~3바이트의 가변코드 값), 다국어 지원

 

 

 

<예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
    <h1>if-else Example</h1>
    <form method = "post" action = "if.jsp">
    이름: <input name = "name"><p/>
    좋아하는 색깔: <select name = "color">
    <option value = "blue" selected>파란색</option>
    <option value = "red">붉은색</option>
    <option value = "orange">오렌지색</option>
    <option value = "etc">기타</option>
    </select></p>
    <input type = "submit" value = "보내기">    
    </form>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

Html 파일 생성

 

 

 

-실행

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
    <h1>If-else Example</h1>
    <%!
    String msg;
    %>
    <%
    String name = request.getParameter("name");
    String color = request.getParameter("color");
    
    if(color.equals ("blue")) {
    msg = "파란색";
    } else if(color.equals("red")) {
    msg = "붉은색";
    } else if(color.equals("orange")) {
    msg = "오렌지색";
    } else {
    color = "white";
    msg = "기타색";
    }
    %>
<body bgcolor = <%= color %>>
    <b><%= name %></b>님이 좋아하는 색깔은 <b><%= msg %></b>입니다.
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

JSP 작성 후 실행

 

 

 

 

JSP를 실행한 뒤, 다시 html에서 동적 콘텐츠를 실행해야 작동한다.

 

 

 

 

한글이 깨졌지만 출력되었다.

 

 

 

 

<예제2>

 

: 같은 이름의 데이터 여러 개를 전송할 때

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@ 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>
    데이터 전송하기<br/>
    <form method = "post" action = "receive.jsp">
    이름: <input type = "text" name = "name"><br/>
    나이: <input type = "text" name = "age"><br/>
    주소: <input type = "text" name = "address"><br/>
    전화번호: <input type = "text" name = "phone"><br/>
    취미: 독서<input type = "checkbox" name = "hob" value = "book"><br/>
    취미: 영화 시청<input type = "checkbox" name = "hob" value = "movie"><br/>
    취미: 프로그래밍<input type = "checkbox" name = "hob" value = "program"><br/>
    <input type = "submit" value = "보내기">
    </form>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

전송할 jsp 파일 생성

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<%@ 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>
    <%
    request.setCharacterEncoding("UTF-8");
    String name = request.getParameter("name");
    String age = request.getParameter("age");
    String address = request.getParameter("address");
    String phone = request.getParameter("phone");
    String hob [] = request.getParameterValues("hob");
    %>
    
    <font color = "blue" size = "4"><%= name %></font><br/>
    <font color = "blue" size = "4"><%= age %></font><br/>
    <font color = "blue" size = "4"><%= address %></font><br/>
    <font color = "blue" size = "4"><%= phone %></font><br/>
    
    <%
    for (int i = 0; i < hob.length; i++) {
    %>
    <font color = "blue" size = "4"><%= hob[i] %></font>
    
    <% } %>
    
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

전송 받는 문서 생성

: checkbox와 같이 같은 이름의 데이터 여러 개를 받는 경우 '배열'을 사용한다.

-> 받는 곳에서는 get.ParameterValues("name"); 사용

 

*name을 모르는 경우: get.parameterNames(); -> 잘 사용하지는 않음

 

 

 

 

-실행

 

 

 

 

'20.03 ~ 20.08 국비교육 > JSP' 카테고리의 다른 글

액션(Action)  (0) 2020.04.23
지시자(Directive)  (0) 2020.04.22
JSP의 기초 문법  (0) 2020.04.21
JSP 소개  (0) 2020.04.21
Eclipse JEE 설치 및 실행  (0) 2020.04.20