정보보안공부

JSP_day09_Gson을 이용해 온라인 설문조사 만들기 본문

JSP

JSP_day09_Gson을 이용해 온라인 설문조사 만들기

Steady_sp 2017. 9. 19. 23:12

< Gson을 이용해

온라인 설문조사 만들기 >

 

1. 데이터를 무슨 형식으로 사용할 것인지를 결정한다.

gson을 이용해 하기 위해서 search.maven.org 에서 gson-x.x.x.jar 파일을 WEB-INF/lib로 복사한다.

 

2. json을 어떤 형태로 만들까?

 

json 파일을 만들어서 프로젝트에 추가한다.... WebContent/data/poll.json

 

 

--> 객체 { } 안에 String형은 " " 안에쓰게된다. 각각의 값 value값은 : 뒤에 입력한다. 배열은 [ ] 안에 작성한다.

 

3. json파일을 Gson으로 읽으려면 모양이 똑같은 vo ( java class ) 를 작성해야한다.

java안에 vo패키지안에 Poll.java파일 작성

 

 

--> 자바 클래스안에 변수를 선언하고 gettet & setter을 설정하는 것은 필수이다.

 

4. json파일이 java클래스를 통해 jsp파일로 읽기 확인

 

WebContent안에 jsonReadTest.jsp 작성

 

 

--> application.getReatPath("./json/poll.json") 을 이용해 불러올 json 파일위치를 getRealPath안에 입력한다.

--> FileInputStream, InputStreamReader 을 이용한뒤 java클래스 Poll 안에 변수 poll을 선언하고 gton.fromJson을 이용해 Poll.class로 json파일을 읽은 ris변수를 입력

--> out.println과 배열인 항목은 for문으로 출력한다.

 

5. 읽는 코드를 클래스로 뺀다.

 

util 패키지안에 JsonRead.java

 

--> 이부분을 따로 java클래스에 Poll getPollJson메소드로 만든다.

 

 

--> JsonRead클래스안에 Poll getPollJson(String path) 메소드를 작성한다. try catch문을 이용해 예외 처리를 해주고 return poll을 통해 값을 반환한다.

--> 따로 클래스를 만들어놓으면 필요할때 불러서 사용할 수 있다.

6. JSP작업을 한다.

 

## 설문지를 표시하는 폼 poll.jsp

 

 

 

--> 설문지를 표시하는 폼으로 설문내용에 포함되는 항목들을 표시하는 부분은 <%= %> 로 표시하고 설문을 한뒤 설문한 데이터를 form action="pollOk.jsp"를 통해 pollOk.jsp 로 넘겨준다.

--> 캡쳐화면에는 없지만 만들어 놓은 자바클래스를 사용하기 위해서

<%@page import="util.JsonRead"%> <%@page import="vo.Poll"%> 를 입력한다.

--> for문을 이용해 getItem값들을 화면에 표시한다.

--> radio타입을 사용할때 checked를 사용하면 미리 체크되어 있게 된다.

--> 결과보기 클릭하면 onclick="location.href='pollResult.jsp'" 에 의해서 pollResult.jsp 파일의 실행화면에 위치한다.

 

 

## 투표했을 때 투표한 항목을 저장하는 페이지 pollOk.jsp

 

 

--> 맨 처음 if문에서는 전송방식이 POST가 아닌 경우에는 response.sendRedirect를 이용해 처음지정 페이지로 무조건 보내도록 설정한다 이때 return ; 을 통해 아래의 명령들은 사용되어지지 않게한다.

--> int [] ar = poll.getItemCount()로 설정한뒤 ar[p]++로 받은 데이터로 Count값을 증가한다. poll.setItemCount(ar) 증가한 카운트값을 적용시킨다.

--> PrintWriter을 이용해 변경된 파일 저장한다. togson(poll, pw) 사용한다.

--> response를 이용해 초기투표화면 or 결과화면을 띄울 수 있다.

 

## 투표 결과보기 페이지 pollResult.jsp

 

 

--> for문을 이용해 결과를 보여준다. poll.getTitle은 제목 poll.getTotal은 총 득표수

poll.getItem()[i]는 5가지항목 순서대로 poll.getItemCount는 해당항목 득표수 poll.getPer는 해당항목 백분율이다.

--> poll.jsp와 마창가지로 돌아가기 버튼 클릭시 location.href에 의해 poll.jsp로 이동한다.

 

 

'JSP' 카테고리의 다른 글

JSP_day13  (0) 2017.09.26
JSP_day12  (0) 2017.09.23
JSP_8. Gson  (0) 2017.09.19
JSP_7. Jsoup  (0) 2017.09.15
JSP_6. 달력만들기  (0) 2017.09.15
Comments