정보보안공부
JSP_day09_Gson을 이용해 온라인 설문조사 만들기 본문
< 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 |