SlideShare a Scribd company logo
5 ███████████
5
이 명 진, 최 영 관
Powered by http://www.jabook.org
2nd
Edition
소설같은
JSP
5장 HTML과 JSP
5.1 GET과 POST
5.1.1 GET과 POST의 요청 방식
▣ GET 방식
◈ URL에 전달하고자 하는 정보를
포함해서 정보를 전달하는 방법
◈ 요청 메시지 형태
▣ POST 방식
◈ 전달하고자 하는 정보를 첨부파
일 형태로 포함해서 전송하는
방법
GET 방식의 요청 메시지 POST 방식의 요청 메시지
URL?이름=값&이름=값&...
URL에 파라미터 정보가
포함되어 있다.
파라미터 정보가 HTTP
메시지의 첨부파일 형태
로 포함되어 있다.
5.1.2 GET과 POST 요청을 위한 HTML 작성
1. <HTML>
2. <HEAD>
3. <TITLE>GET과 POST</TITLE>
4. </HEAD>
5. <BODY>
6. <form action="formTest.jsp" method="GET">
7. <input type="text" name="name" >
8. <input type="submit" value="Submit">
9. </form>
10. </BODY>
11. </HTML>
GET 방식을 사용할 것인지
POST 방식을 사용할 것인지
를 지정
Submit 버튼을 누르면
실행될 CGI 프로그램
을 지정
전송 버튼 작성
텍스트 상자 작성
파라미터 이름 = name
▣ <form> 태그
◈ 클라이언트에서 서버로 값을 전달하고자 할 때 사용하는 태그
– action 속성 : 사용자의 입력정보를 받아서 처리하는 CGI 프로그램의 위치를 지정
– method 속성 : 사용자의 입력정보가 어떤 방법으로 CGI 프로그램에 전달되게 할 것인지를
지정 (GET | POST)
▣ <input> 태그
◈ 텍스트 상자와 버튼을 만들기 위한 태그
– type 속성 : 대화 컨트롤의 종류를 지정(text | submit)
– name 속성 : <input> 태그의 이름을 지정하며, 파라미터 이름으로 사용된다.
– value 속성 : 버튼에 나타날 값을 지정
<input> 태그의
name 속성은 파
라미터의 이름으
로 사용되므로
아주 중요하다.
<form> 태그의
method 속성 값에
따라 GET과 POST
방식이 결정된다.
5.1.3 JSP에서 파라미터 처리하기
▣ request 객체
◈ JSP에서 자동으로 제공되는 내장 객체
◈ getParameter() 메소드를 이용해서 해당 파라미터가
가진 값을 얻을 수 있다.
◈ 다중 선택이 가능한 항목(체크 박스, 다중 선택 박스)
의 경우 getParameterValues() 메소드를 이용해서 해
당 파라미터가 가진 값을 배열 형태로 얻을 수 있다.
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JSP 실행 시 자동 생성된 서블릿 파일의 _jspService() 메소드
<%
String str = request.getParameter("name");
String[] strArray = request.getParameterValues("hobby");
%>
<input type="text"
name="name" >
실행 결과
name
5.2 JSP에서의 한글 처리
5.2.1 웹 브라우저에서의 한글 처리
▣ 웹 브라우저의 한글 처리
◈ 클라이언트의 웹 브라우저는 해당 문서의 Content Type을 보고 문자
인코딩 방법을 결정한다.
▣ 지시문을 이용한 Content Type 설정
<%@ page contentType = "text/html; charset=euc-kr" %>
현재 문서의 타입과 인코딩 정보 지정
response.setContentType("text/html; charset=euc-kr");
자동 변환된 서블릿 파일
charset을 euc-kr
로 지정해야 한글
을 제대로 출력할
수 있다.
5.2.2 GET 방식에서의 한글 처리
▣ 톰캣 차원에서 GET 방식의 한글 문제 해결 방법
◈ %CATALINA_HOME%confserver.xml의 <Connector> 태그에
URIEncoding="euc-kr" 속성 추가 후 톰캣 재 시작
server.xml의
URLEncoding만 수
정하면 모든 GET
방식의 한글 인식
이 가능해 진다. server.xml 파일을
변경한 후 반듯이
톰캣을 재 시작해
야 한다.
5.2.3 POST 방식에서의 한글처리
▣ POST 방식에서의 한글 처리
◈ 내장 객체인 request 객체의 setCharacterEncoding() 메소드를 이용해
서 데이터의 인코딩을 변환한다.
◈ request.getParameter(...)를 호출하기 전에 한글 인코딩이 설정되어 있
어야 한다.
▣ POST 방식에서의 한글 인코딩 방법
<%
request.setCharacterEncoding("euc-kr");
String str = request.getParameter("name")
...
%>
POST 방식에서의
한글 설정은
getParameter() 메소
드 앞에 선언되어
야 한다.
5.3 HTML의 양식 데이터
5.3.1 대화형 웹 페이지를 위한 HTML 태그
▣ <form> 태그
◈ 웹 서버로 정보를 전달하기 위한 기본 태그
◈ action과 method 속성을 사용해서 정보 전달 방식과 실행될 CGI 애
플리케이션을 지정한다.
▣ <input> 태그
◈ 텍스트 필드, 체크 박스, 라디오 버튼 등을 만들기 위한 태그
▣ <textarea> 태그
◈ 대화 상자를 만들기 위한 태그
▣ <select>, <option> 태그
◈ 선택 목록을 만들기 위한 태그
<form>, <input>,
<textarea>, <select>,
<option> 태그를 이
용해서 웹 서버에 정
보를 전달하는 대화
형 웹 페이지를 만들
수 있다.
5.3.2 텍스트 필드 만들기
▣ 일반적인 텍스트 필드
◈ 한 줄로 된 가장 일반적인 형태의 텍스트 필드
▣ 패스워드 형태의 텍스트 필드
◈ 글을 입력하면 '*' 기호로 표시되는 텍스트 필드
▣ 숨겨진 텍스트 필드
◈ 겉으로 보이지 않는 텍스트 필드를 작성
◈ 일반적으로 사용자에 의해 변경되지 않는 고정 값을 전달하기 위해 사용
▣ 텍스트 상자
◈ 여러 줄을 입력할 수 있는 형태의 텍스트 입력 상자
<input type="text" name="name">
텍스트 필드를 생성 텍스트 필드의 이름, 파라미터 이름으로 사용
<input type="password" name="pwd">
패스워드 텍스트 필드를 생성 텍스트 필드의 이름, 파라미터 이름으로 사용
<input type="hidden" value="3" name="hiddenText">
숨겨진 텍스트 필드를 생성 텍스트 필드의 이름, 파라미터 이름으로 사용값 지정
<textarea name="myTextarea" cols="30" rows="4"> ~~~~~~~~~ </textarea>
텍스트 상자의 이름 지정 좌우 폭 상하 길이 초기 출력 텍스트를 지정
<textarea> 태그
는 반드시 닫는
태그를 써주어
야 한다.
5.3.3 버튼 만들기
▣ 전송 버튼
◈ 클릭 시 <form> 태그의 action 속성
에 지정된 작업을 실행
▣ 초기화 버튼
◈ 클릭 시 모든 텍스트 필드의 값을
초기화한다.
▣ 파일 찾기 버튼
◈ 클릭 시 파일을 선택할 수 있는 대
화 상자 출력
▣ 일반 버튼
◈ 일반적인 형태의 버튼 생성
▣ 이미지 버튼
◈ 이미지 파일을 이용해서 버튼을 생
성한다.
<input type="submit" value="전송">
전송 버튼 생성 버튼에 출력될 텍스트 지정
<input type="reset" value="초기화">
초기화 버튼 생성 버튼에 출력될 텍스트 지정
<input type="file" name="fileName">
파일 대화상자 버튼 생성 필드의 이름을 지정
<input type="button" value="클릭">
일반 버튼 생성 버튼에 출력될 텍스트 지정
<input type="image" src="imageButton.gif">
이미지 버튼 생성 버튼에 사용될 이미지 파일을 지정
5.3.4 텍스트 필드와 버튼 예제
<form action="textExample.jsp" method="post">
이름 : <input type="text" name="name"><p>
암호 : <input type="password" name="pwd"><p>
<input type="hidden" name="hiddenText" value="3">
기타 : <textarea name="myTextarea" cols="25" rows="4"></textarea><p>
<input type="submit" value="Submit">
</form>
type 속성이
hidden으로 지정
된 텍스트 필드
는 보이지 않는
다.
textExample.html
<%
request.setCharacterEncoding("euc-kr");
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
String hidden = request.getParameter("hiddenText");
String etc = request.getParameter("myTextarea");
%>
이름 : <%=name%><p>
암호 : <%=pwd%><p>
등급 : <%=hidden%><p>
기타 : <%=etc%>
textExample.jsp
POST 방식의
한글 인코딩
5.3.5 선택형 버튼 만들기
▣ 라디오 버튼
◈ 여러 가지 항목 중 한가지를 선택할 수 있는 선택형 버튼
◈ <input> 태그의 type 속성에 radio로 지정하고, 동일한 항목들에 대해 똑같은
name 속성 값을 부여하며 value 속성에는 해당 항목만 갖는 값을 할당
▣ 체크 박스
◈ 여러 가지 항목 중 하나 이상 선택 가능한 선택형 버튼
◈ <input> 태그의 type 속성에 checkbox로 지정하고, 동일한 항목들에 대해 똑
같은 name 속성 값을 부여하며 value 속성에는 해당 항목만 갖는 값을 할당
<input type="radio" name="sex" value="man">남자
<input type="radio" name="sex" value="woman">여자
라디오 버튼 생성 버튼 이름 항목의 값
<input type="checkbox" name="hobby" value="ski">스키
<input type="checkbox" name="hobby" value="inline">인라인
체크 버튼 생성 버튼 이름 항목의 값
5.3.6 선택형 버튼 예제
<form action="selectButton.jsp" method="get">
성별 :
<input type="radio" name="sex" value="Man">남자
<input type="radio" name="sex" value="Woman">여자<p>
취미 :
<input type="checkbox" name="hobby" value="Ski">스키
<input type="checkbox" name="hobby" value="Inline">인라인<p>
<input type="submit" value="Submit">
</form>
라디오 버튼은 하
나만 선택 가능하
며, 체크 박스는 여
러 개가 선택 가능
하다.
selectButton.html
<%
String sex = request.getParameter("sex");
String[] hobby = request.getParameterValues("hobby");
%>
성별 : <%=sex%><p>
취미 :
<%
for(int i = 0; i < hobby.length; i++) {
out.print(hobby[i] + " ");
}
%>
체크 박스는 여러
항목이 선택 가능
하므로 값의 배열
형태로 다룬다.
selectButton.jsp
5.3.7 선택 박스 만들기
▣ <select> 태그
◈ 선택 박스를 만들기 위한 태그
◈ name 속성은 <select> 태그의 이름을 지정하며, 이는 파라미터 이름으로 사
용된다.
◈ <select> 태그의 속성
– mutiple 속성
• 다중 선택 가능한 선택 박스
▣ <option> 태그
◈ 선택 박스에 사용될 항목을 작성
◈ <option> 태그의 속성
– selected 속성
• 초기 선택 여부를 지정
<select name="live">
<option selected>서울</option>
<option>경기도</option>
</select>
선택 박스의 이름 지정
초기 선택 항목 지정
<select name="language" multiple>
<option>JSP</option>
<option>ASP</option>
</select>
선택 박스의 이름 지정 다중 선택 옵션
5.3.8 선택 박스 예제
<form action="selectBox.jsp" method="get">
사는 곳 : <select name="live">
<option selected>서울</option>
<option>경기도</option>
<option>강원도</option>
</select><p>
개발 언어 : <select name="language" multiple>
<option>JSP</option>
<option>ASP</option>
<option>Java</option>
<option>C#</option>
</select><p>
<input type="submit" value="Submit">
</form>
다중 선택 박스
단일 선택 박스
selectBox.html
<%
String live = request.getParameter("live");
String[] language = request.getParameterValues("language");
%>
사는 곳 : <%=live%><p>
개발 언어 :
<%
for(int i = 0; i < language.length; i++) {
out.print(language[i] + " ");
}
%>
selectBox.jsp
다중 선택
박스는 배
열로 처리
한다.
5.3.9 getParameterNames() 메소드
▣ getParameterNames() 메소드
◈ JSP 페이지에 파라미터로 전달된 모든 파라미터의 이름을 반환
public java.util.Enumeration getParameterNames();
<form action="ParameterNames.jsp" method="post">
<input type="text" name="name">
<input type="text" name="sex">
<input type="text" name="age">
<input type="text" name="birth">
<input type="submit" text="Submit">
</form>
parameterNames.html
Enumeration param = request.getParameterNames();
while(param.hasMoreElements()) {
String name = (String)param.nextElement();
out.println(name + request.getParameter(name));
}
ParameterNames.jsp
name
sex
age
birth
파라미터 이름을 저장
End ███████████
End

More Related Content

What's hot

Json view 예제 설명
Json view 예제 설명Json view 예제 설명
Json view 예제 설명Hyung Eun Jin
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs기동 이
 
HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3J B
 
SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기Myung Woon Oh
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는Taegon Kim
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.jsWoo Jin Kim
 
5-4. html5 offline and storage
5-4. html5 offline and storage5-4. html5 offline and storage
5-4. html5 offline and storageJinKyoungHeo
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기Park JoongSoo
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)DK Lee
 
헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리은숙 이
 
스프링 3.0 RESTful & restTemplate
스프링 3.0  RESTful & restTemplate스프링 3.0  RESTful & restTemplate
스프링 3.0 RESTful & restTemplateisyoon
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)DK Lee
 
Html5 web workers
Html5 web workersHtml5 web workers
Html5 web workersWoo Jin Kim
 
막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)연웅 조
 
[11]Android DataBinding : 기초에서 고급까지
[11]Android DataBinding : 기초에서 고급까지[11]Android DataBinding : 기초에서 고급까지
[11]Android DataBinding : 기초에서 고급까지NAVER Engineering
 

What's hot (20)

3-2. selector api
3-2. selector api3-2. selector api
3-2. selector api
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
Json view 예제 설명
Json view 예제 설명Json view 예제 설명
Json view 예제 설명
 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
 
HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3
 
SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
 
5-4. html5 offline and storage
5-4. html5 offline and storage5-4. html5 offline and storage
5-4. html5 offline and storage
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 
헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리
 
스프링 3.0 RESTful & restTemplate
스프링 3.0  RESTful & restTemplate스프링 3.0  RESTful & restTemplate
스프링 3.0 RESTful & restTemplate
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
Html5 web workers
Html5 web workersHtml5 web workers
Html5 web workers
 
막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)
 
Express 프레임워크
Express 프레임워크Express 프레임워크
Express 프레임워크
 
[11]Android DataBinding : 기초에서 고급까지
[11]Android DataBinding : 기초에서 고급까지[11]Android DataBinding : 기초에서 고급까지
[11]Android DataBinding : 기초에서 고급까지
 

Similar to JSP 프로그래밍 #05 HTML과 JSP

[APM] Homepage bbs
[APM] Homepage bbs[APM] Homepage bbs
[APM] Homepage bbsKim Heejin
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4성일 한
 
Role Of Server In Ajax Korean
Role Of Server In Ajax KoreanRole Of Server In Ajax Korean
Role Of Server In Ajax KoreanTerry Cho
 
Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Sungjoon Yoon
 
5. html5 웹폼
5. html5 웹폼5. html5 웹폼
5. html5 웹폼은심 강
 
Servlet design pattern
Servlet design patternServlet design pattern
Servlet design patternSukjin Yun
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdfHyosang Hong
 
Lan3 강향리 2013 겨울방학 기말아웃풋
Lan3 강향리 2013 겨울방학 기말아웃풋Lan3 강향리 2013 겨울방학 기말아웃풋
Lan3 강향리 2013 겨울방학 기말아웃풋Hyangri Kang
 
Html5&css 3장
Html5&css 3장Html5&css 3장
Html5&css 3장홍준 김
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기Sungbum Hong
 

Similar to JSP 프로그래밍 #05 HTML과 JSP (20)

[APM] Homepage bbs
[APM] Homepage bbs[APM] Homepage bbs
[APM] Homepage bbs
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4
 
Role Of Server In Ajax Korean
Role Of Server In Ajax KoreanRole Of Server In Ajax Korean
Role Of Server In Ajax Korean
 
딥러닝이 바꾸는 애자일 테스팅
딥러닝이 바꾸는 애자일 테스팅딥러닝이 바꾸는 애자일 테스팅
딥러닝이 바꾸는 애자일 테스팅
 
Hacosa j query 11th
Hacosa j query 11thHacosa j query 11th
Hacosa j query 11th
 
Meteor2015 codelab
Meteor2015 codelab Meteor2015 codelab
Meteor2015 codelab
 
Html5
Html5 Html5
Html5
 
Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)
 
5. html5 웹폼
5. html5 웹폼5. html5 웹폼
5. html5 웹폼
 
Servlet design pattern
Servlet design patternServlet design pattern
Servlet design pattern
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
 
Lan3 강향리 2013 겨울방학 기말아웃풋
Lan3 강향리 2013 겨울방학 기말아웃풋Lan3 강향리 2013 겨울방학 기말아웃풋
Lan3 강향리 2013 겨울방학 기말아웃풋
 
One-day-codelab
One-day-codelabOne-day-codelab
One-day-codelab
 
Html5&css 3장
Html5&css 3장Html5&css 3장
Html5&css 3장
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
스프링 3.0 & RESTful
스프링 3.0 & RESTful스프링 3.0 & RESTful
스프링 3.0 & RESTful
 
What's new in IE11
What's new in IE11What's new in IE11
What's new in IE11
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기
 
Hacosa js study 6th
Hacosa js study 6thHacosa js study 6th
Hacosa js study 6th
 

More from Myungjin Lee

지식그래프 개념과 활용방안 (Knowledge Graph - Introduction and Use Cases)
지식그래프 개념과 활용방안 (Knowledge Graph - Introduction and Use Cases)지식그래프 개념과 활용방안 (Knowledge Graph - Introduction and Use Cases)
지식그래프 개념과 활용방안 (Knowledge Graph - Introduction and Use Cases)Myungjin Lee
 
관광 지식베이스와 스마트 관광 서비스 (Knowledge base and Smart Tourism)
관광 지식베이스와 스마트 관광 서비스 (Knowledge base and Smart Tourism)관광 지식베이스와 스마트 관광 서비스 (Knowledge base and Smart Tourism)
관광 지식베이스와 스마트 관광 서비스 (Knowledge base and Smart Tourism)Myungjin Lee
 
오픈 데이터와 인공지능
오픈 데이터와 인공지능오픈 데이터와 인공지능
오픈 데이터와 인공지능Myungjin Lee
 
법령 온톨로지의 구축 및 검색
법령 온톨로지의 구축 및 검색법령 온톨로지의 구축 및 검색
법령 온톨로지의 구축 및 검색Myungjin Lee
 
도서관과 Linked Data
도서관과 Linked Data도서관과 Linked Data
도서관과 Linked DataMyungjin Lee
 
공공데이터, 현재 우리는?
공공데이터, 현재 우리는?공공데이터, 현재 우리는?
공공데이터, 현재 우리는?Myungjin Lee
 
LODAC 2017 Linked Open Data Workshop
LODAC 2017 Linked Open Data WorkshopLODAC 2017 Linked Open Data Workshop
LODAC 2017 Linked Open Data WorkshopMyungjin Lee
 
Introduction of Deep Learning
Introduction of Deep LearningIntroduction of Deep Learning
Introduction of Deep LearningMyungjin Lee
 
쉽게 이해하는 LOD
쉽게 이해하는 LOD쉽게 이해하는 LOD
쉽게 이해하는 LODMyungjin Lee
 
서울시 열린데이터 광장 문화관광 분야 LOD 서비스
서울시 열린데이터 광장 문화관광 분야 LOD 서비스서울시 열린데이터 광장 문화관광 분야 LOD 서비스
서울시 열린데이터 광장 문화관광 분야 LOD 서비스Myungjin Lee
 
LOD(Linked Open Data) Recommendations
LOD(Linked Open Data) RecommendationsLOD(Linked Open Data) Recommendations
LOD(Linked Open Data) RecommendationsMyungjin Lee
 
Interlinking for Linked Data
Interlinking for Linked DataInterlinking for Linked Data
Interlinking for Linked DataMyungjin Lee
 
Linked Open Data Tutorial
Linked Open Data TutorialLinked Open Data Tutorial
Linked Open Data TutorialMyungjin Lee
 
Linked Data Usecases
Linked Data UsecasesLinked Data Usecases
Linked Data UsecasesMyungjin Lee
 
공공데이터와 Linked open data
공공데이터와 Linked open data공공데이터와 Linked open data
공공데이터와 Linked open dataMyungjin Lee
 
공공데이터와 Linked open data
공공데이터와 Linked open data공공데이터와 Linked open data
공공데이터와 Linked open dataMyungjin Lee
 
Linked Data Modeling for Beginner
Linked Data Modeling for BeginnerLinked Data Modeling for Beginner
Linked Data Modeling for BeginnerMyungjin Lee
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLMyungjin Lee
 
Development of Twitter Application #8 - Streaming API
Development of Twitter Application #8 - Streaming APIDevelopment of Twitter Application #8 - Streaming API
Development of Twitter Application #8 - Streaming APIMyungjin Lee
 
The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)Myungjin Lee
 

More from Myungjin Lee (20)

지식그래프 개념과 활용방안 (Knowledge Graph - Introduction and Use Cases)
지식그래프 개념과 활용방안 (Knowledge Graph - Introduction and Use Cases)지식그래프 개념과 활용방안 (Knowledge Graph - Introduction and Use Cases)
지식그래프 개념과 활용방안 (Knowledge Graph - Introduction and Use Cases)
 
관광 지식베이스와 스마트 관광 서비스 (Knowledge base and Smart Tourism)
관광 지식베이스와 스마트 관광 서비스 (Knowledge base and Smart Tourism)관광 지식베이스와 스마트 관광 서비스 (Knowledge base and Smart Tourism)
관광 지식베이스와 스마트 관광 서비스 (Knowledge base and Smart Tourism)
 
오픈 데이터와 인공지능
오픈 데이터와 인공지능오픈 데이터와 인공지능
오픈 데이터와 인공지능
 
법령 온톨로지의 구축 및 검색
법령 온톨로지의 구축 및 검색법령 온톨로지의 구축 및 검색
법령 온톨로지의 구축 및 검색
 
도서관과 Linked Data
도서관과 Linked Data도서관과 Linked Data
도서관과 Linked Data
 
공공데이터, 현재 우리는?
공공데이터, 현재 우리는?공공데이터, 현재 우리는?
공공데이터, 현재 우리는?
 
LODAC 2017 Linked Open Data Workshop
LODAC 2017 Linked Open Data WorkshopLODAC 2017 Linked Open Data Workshop
LODAC 2017 Linked Open Data Workshop
 
Introduction of Deep Learning
Introduction of Deep LearningIntroduction of Deep Learning
Introduction of Deep Learning
 
쉽게 이해하는 LOD
쉽게 이해하는 LOD쉽게 이해하는 LOD
쉽게 이해하는 LOD
 
서울시 열린데이터 광장 문화관광 분야 LOD 서비스
서울시 열린데이터 광장 문화관광 분야 LOD 서비스서울시 열린데이터 광장 문화관광 분야 LOD 서비스
서울시 열린데이터 광장 문화관광 분야 LOD 서비스
 
LOD(Linked Open Data) Recommendations
LOD(Linked Open Data) RecommendationsLOD(Linked Open Data) Recommendations
LOD(Linked Open Data) Recommendations
 
Interlinking for Linked Data
Interlinking for Linked DataInterlinking for Linked Data
Interlinking for Linked Data
 
Linked Open Data Tutorial
Linked Open Data TutorialLinked Open Data Tutorial
Linked Open Data Tutorial
 
Linked Data Usecases
Linked Data UsecasesLinked Data Usecases
Linked Data Usecases
 
공공데이터와 Linked open data
공공데이터와 Linked open data공공데이터와 Linked open data
공공데이터와 Linked open data
 
공공데이터와 Linked open data
공공데이터와 Linked open data공공데이터와 Linked open data
공공데이터와 Linked open data
 
Linked Data Modeling for Beginner
Linked Data Modeling for BeginnerLinked Data Modeling for Beginner
Linked Data Modeling for Beginner
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQL
 
Development of Twitter Application #8 - Streaming API
Development of Twitter Application #8 - Streaming APIDevelopment of Twitter Application #8 - Streaming API
Development of Twitter Application #8 - Streaming API
 
The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)
 

JSP 프로그래밍 #05 HTML과 JSP

  • 2. 이 명 진, 최 영 관 Powered by http://www.jabook.org 2nd Edition 소설같은 JSP 5장 HTML과 JSP
  • 4. 5.1.1 GET과 POST의 요청 방식 ▣ GET 방식 ◈ URL에 전달하고자 하는 정보를 포함해서 정보를 전달하는 방법 ◈ 요청 메시지 형태 ▣ POST 방식 ◈ 전달하고자 하는 정보를 첨부파 일 형태로 포함해서 전송하는 방법 GET 방식의 요청 메시지 POST 방식의 요청 메시지 URL?이름=값&이름=값&... URL에 파라미터 정보가 포함되어 있다. 파라미터 정보가 HTTP 메시지의 첨부파일 형태 로 포함되어 있다.
  • 5. 5.1.2 GET과 POST 요청을 위한 HTML 작성 1. <HTML> 2. <HEAD> 3. <TITLE>GET과 POST</TITLE> 4. </HEAD> 5. <BODY> 6. <form action="formTest.jsp" method="GET"> 7. <input type="text" name="name" > 8. <input type="submit" value="Submit"> 9. </form> 10. </BODY> 11. </HTML> GET 방식을 사용할 것인지 POST 방식을 사용할 것인지 를 지정 Submit 버튼을 누르면 실행될 CGI 프로그램 을 지정 전송 버튼 작성 텍스트 상자 작성 파라미터 이름 = name ▣ <form> 태그 ◈ 클라이언트에서 서버로 값을 전달하고자 할 때 사용하는 태그 – action 속성 : 사용자의 입력정보를 받아서 처리하는 CGI 프로그램의 위치를 지정 – method 속성 : 사용자의 입력정보가 어떤 방법으로 CGI 프로그램에 전달되게 할 것인지를 지정 (GET | POST) ▣ <input> 태그 ◈ 텍스트 상자와 버튼을 만들기 위한 태그 – type 속성 : 대화 컨트롤의 종류를 지정(text | submit) – name 속성 : <input> 태그의 이름을 지정하며, 파라미터 이름으로 사용된다. – value 속성 : 버튼에 나타날 값을 지정 <input> 태그의 name 속성은 파 라미터의 이름으 로 사용되므로 아주 중요하다. <form> 태그의 method 속성 값에 따라 GET과 POST 방식이 결정된다.
  • 6. 5.1.3 JSP에서 파라미터 처리하기 ▣ request 객체 ◈ JSP에서 자동으로 제공되는 내장 객체 ◈ getParameter() 메소드를 이용해서 해당 파라미터가 가진 값을 얻을 수 있다. ◈ 다중 선택이 가능한 항목(체크 박스, 다중 선택 박스) 의 경우 getParameterValues() 메소드를 이용해서 해 당 파라미터가 가진 값을 배열 형태로 얻을 수 있다. public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JSP 실행 시 자동 생성된 서블릿 파일의 _jspService() 메소드 <% String str = request.getParameter("name"); String[] strArray = request.getParameterValues("hobby"); %> <input type="text" name="name" > 실행 결과 name
  • 8. 5.2.1 웹 브라우저에서의 한글 처리 ▣ 웹 브라우저의 한글 처리 ◈ 클라이언트의 웹 브라우저는 해당 문서의 Content Type을 보고 문자 인코딩 방법을 결정한다. ▣ 지시문을 이용한 Content Type 설정 <%@ page contentType = "text/html; charset=euc-kr" %> 현재 문서의 타입과 인코딩 정보 지정 response.setContentType("text/html; charset=euc-kr"); 자동 변환된 서블릿 파일 charset을 euc-kr 로 지정해야 한글 을 제대로 출력할 수 있다.
  • 9. 5.2.2 GET 방식에서의 한글 처리 ▣ 톰캣 차원에서 GET 방식의 한글 문제 해결 방법 ◈ %CATALINA_HOME%confserver.xml의 <Connector> 태그에 URIEncoding="euc-kr" 속성 추가 후 톰캣 재 시작 server.xml의 URLEncoding만 수 정하면 모든 GET 방식의 한글 인식 이 가능해 진다. server.xml 파일을 변경한 후 반듯이 톰캣을 재 시작해 야 한다.
  • 10. 5.2.3 POST 방식에서의 한글처리 ▣ POST 방식에서의 한글 처리 ◈ 내장 객체인 request 객체의 setCharacterEncoding() 메소드를 이용해 서 데이터의 인코딩을 변환한다. ◈ request.getParameter(...)를 호출하기 전에 한글 인코딩이 설정되어 있 어야 한다. ▣ POST 방식에서의 한글 인코딩 방법 <% request.setCharacterEncoding("euc-kr"); String str = request.getParameter("name") ... %> POST 방식에서의 한글 설정은 getParameter() 메소 드 앞에 선언되어 야 한다.
  • 11. 5.3 HTML의 양식 데이터
  • 12. 5.3.1 대화형 웹 페이지를 위한 HTML 태그 ▣ <form> 태그 ◈ 웹 서버로 정보를 전달하기 위한 기본 태그 ◈ action과 method 속성을 사용해서 정보 전달 방식과 실행될 CGI 애 플리케이션을 지정한다. ▣ <input> 태그 ◈ 텍스트 필드, 체크 박스, 라디오 버튼 등을 만들기 위한 태그 ▣ <textarea> 태그 ◈ 대화 상자를 만들기 위한 태그 ▣ <select>, <option> 태그 ◈ 선택 목록을 만들기 위한 태그 <form>, <input>, <textarea>, <select>, <option> 태그를 이 용해서 웹 서버에 정 보를 전달하는 대화 형 웹 페이지를 만들 수 있다.
  • 13. 5.3.2 텍스트 필드 만들기 ▣ 일반적인 텍스트 필드 ◈ 한 줄로 된 가장 일반적인 형태의 텍스트 필드 ▣ 패스워드 형태의 텍스트 필드 ◈ 글을 입력하면 '*' 기호로 표시되는 텍스트 필드 ▣ 숨겨진 텍스트 필드 ◈ 겉으로 보이지 않는 텍스트 필드를 작성 ◈ 일반적으로 사용자에 의해 변경되지 않는 고정 값을 전달하기 위해 사용 ▣ 텍스트 상자 ◈ 여러 줄을 입력할 수 있는 형태의 텍스트 입력 상자 <input type="text" name="name"> 텍스트 필드를 생성 텍스트 필드의 이름, 파라미터 이름으로 사용 <input type="password" name="pwd"> 패스워드 텍스트 필드를 생성 텍스트 필드의 이름, 파라미터 이름으로 사용 <input type="hidden" value="3" name="hiddenText"> 숨겨진 텍스트 필드를 생성 텍스트 필드의 이름, 파라미터 이름으로 사용값 지정 <textarea name="myTextarea" cols="30" rows="4"> ~~~~~~~~~ </textarea> 텍스트 상자의 이름 지정 좌우 폭 상하 길이 초기 출력 텍스트를 지정 <textarea> 태그 는 반드시 닫는 태그를 써주어 야 한다.
  • 14. 5.3.3 버튼 만들기 ▣ 전송 버튼 ◈ 클릭 시 <form> 태그의 action 속성 에 지정된 작업을 실행 ▣ 초기화 버튼 ◈ 클릭 시 모든 텍스트 필드의 값을 초기화한다. ▣ 파일 찾기 버튼 ◈ 클릭 시 파일을 선택할 수 있는 대 화 상자 출력 ▣ 일반 버튼 ◈ 일반적인 형태의 버튼 생성 ▣ 이미지 버튼 ◈ 이미지 파일을 이용해서 버튼을 생 성한다. <input type="submit" value="전송"> 전송 버튼 생성 버튼에 출력될 텍스트 지정 <input type="reset" value="초기화"> 초기화 버튼 생성 버튼에 출력될 텍스트 지정 <input type="file" name="fileName"> 파일 대화상자 버튼 생성 필드의 이름을 지정 <input type="button" value="클릭"> 일반 버튼 생성 버튼에 출력될 텍스트 지정 <input type="image" src="imageButton.gif"> 이미지 버튼 생성 버튼에 사용될 이미지 파일을 지정
  • 15. 5.3.4 텍스트 필드와 버튼 예제 <form action="textExample.jsp" method="post"> 이름 : <input type="text" name="name"><p> 암호 : <input type="password" name="pwd"><p> <input type="hidden" name="hiddenText" value="3"> 기타 : <textarea name="myTextarea" cols="25" rows="4"></textarea><p> <input type="submit" value="Submit"> </form> type 속성이 hidden으로 지정 된 텍스트 필드 는 보이지 않는 다. textExample.html <% request.setCharacterEncoding("euc-kr"); String name = request.getParameter("name"); String pwd = request.getParameter("pwd"); String hidden = request.getParameter("hiddenText"); String etc = request.getParameter("myTextarea"); %> 이름 : <%=name%><p> 암호 : <%=pwd%><p> 등급 : <%=hidden%><p> 기타 : <%=etc%> textExample.jsp POST 방식의 한글 인코딩
  • 16. 5.3.5 선택형 버튼 만들기 ▣ 라디오 버튼 ◈ 여러 가지 항목 중 한가지를 선택할 수 있는 선택형 버튼 ◈ <input> 태그의 type 속성에 radio로 지정하고, 동일한 항목들에 대해 똑같은 name 속성 값을 부여하며 value 속성에는 해당 항목만 갖는 값을 할당 ▣ 체크 박스 ◈ 여러 가지 항목 중 하나 이상 선택 가능한 선택형 버튼 ◈ <input> 태그의 type 속성에 checkbox로 지정하고, 동일한 항목들에 대해 똑 같은 name 속성 값을 부여하며 value 속성에는 해당 항목만 갖는 값을 할당 <input type="radio" name="sex" value="man">남자 <input type="radio" name="sex" value="woman">여자 라디오 버튼 생성 버튼 이름 항목의 값 <input type="checkbox" name="hobby" value="ski">스키 <input type="checkbox" name="hobby" value="inline">인라인 체크 버튼 생성 버튼 이름 항목의 값
  • 17. 5.3.6 선택형 버튼 예제 <form action="selectButton.jsp" method="get"> 성별 : <input type="radio" name="sex" value="Man">남자 <input type="radio" name="sex" value="Woman">여자<p> 취미 : <input type="checkbox" name="hobby" value="Ski">스키 <input type="checkbox" name="hobby" value="Inline">인라인<p> <input type="submit" value="Submit"> </form> 라디오 버튼은 하 나만 선택 가능하 며, 체크 박스는 여 러 개가 선택 가능 하다. selectButton.html <% String sex = request.getParameter("sex"); String[] hobby = request.getParameterValues("hobby"); %> 성별 : <%=sex%><p> 취미 : <% for(int i = 0; i < hobby.length; i++) { out.print(hobby[i] + " "); } %> 체크 박스는 여러 항목이 선택 가능 하므로 값의 배열 형태로 다룬다. selectButton.jsp
  • 18. 5.3.7 선택 박스 만들기 ▣ <select> 태그 ◈ 선택 박스를 만들기 위한 태그 ◈ name 속성은 <select> 태그의 이름을 지정하며, 이는 파라미터 이름으로 사 용된다. ◈ <select> 태그의 속성 – mutiple 속성 • 다중 선택 가능한 선택 박스 ▣ <option> 태그 ◈ 선택 박스에 사용될 항목을 작성 ◈ <option> 태그의 속성 – selected 속성 • 초기 선택 여부를 지정 <select name="live"> <option selected>서울</option> <option>경기도</option> </select> 선택 박스의 이름 지정 초기 선택 항목 지정 <select name="language" multiple> <option>JSP</option> <option>ASP</option> </select> 선택 박스의 이름 지정 다중 선택 옵션
  • 19. 5.3.8 선택 박스 예제 <form action="selectBox.jsp" method="get"> 사는 곳 : <select name="live"> <option selected>서울</option> <option>경기도</option> <option>강원도</option> </select><p> 개발 언어 : <select name="language" multiple> <option>JSP</option> <option>ASP</option> <option>Java</option> <option>C#</option> </select><p> <input type="submit" value="Submit"> </form> 다중 선택 박스 단일 선택 박스 selectBox.html <% String live = request.getParameter("live"); String[] language = request.getParameterValues("language"); %> 사는 곳 : <%=live%><p> 개발 언어 : <% for(int i = 0; i < language.length; i++) { out.print(language[i] + " "); } %> selectBox.jsp 다중 선택 박스는 배 열로 처리 한다.
  • 20. 5.3.9 getParameterNames() 메소드 ▣ getParameterNames() 메소드 ◈ JSP 페이지에 파라미터로 전달된 모든 파라미터의 이름을 반환 public java.util.Enumeration getParameterNames(); <form action="ParameterNames.jsp" method="post"> <input type="text" name="name"> <input type="text" name="sex"> <input type="text" name="age"> <input type="text" name="birth"> <input type="submit" text="Submit"> </form> parameterNames.html Enumeration param = request.getParameterNames(); while(param.hasMoreElements()) { String name = (String)param.nextElement(); out.println(name + request.getParameter(name)); } ParameterNames.jsp name sex age birth 파라미터 이름을 저장