<폼 전송>
폼 구성 요소는 반드시 태그로 감싸야 한다.
-클라이언트
< 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>
이름: <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/>
이름: <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 |