[JSP] 서버에서 클라이언트로 JSON 데이터 전송하기

2022. 5. 23. 14:52·Front-End/JSP

서버에서 클라이언트로 JSON 데이터 전송하기

파라미터로 member의 id값이 오는 경우 서버에서 해당 member 데이터 가져오는 방법

  • 요청 url : http://localhost:8282/project4/**t4.jsp?id=aa
  • 파라미터로 id=aa를 넘김
<%@page import="net.sf.json.JSONObject"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="kr.co.seoulit.member.dto.Member"%>
<%@page import="kr.co.seoulit.member.dao.MemberDAO"%>
<%@page import="kr.co.seoulit.member.dao.MemberDAOImpl"%>
<%
MemberDAO dao=MemberDAOImpl.getInstance();
Member dto=dao.selectMember(request.getParameter("id"));  //파라미터 id의 값을 Member를 조회하는 메서드에 넘김
Map<String,Object> map=new HashMap<>();
map.put("member",dto);
JSONObject json=JSONObject.fromObject(map);
out.print(json);
%> 
  • url에 있는 파라미터 값을 받아서 Member객체를 조회하는 쿼리문이 있는 메서드에 넘겨서 Member의 정보를 JSON형태로 받아서 출력

json출력문

 

파라미터로 id값을 받아서 텍스트 박스에 멤버의 정보를 출력하는 방법(JSP문법에서 자바스크립트로 데이터를 넘기는 방법)

  • 요청 url : http://localhost:8282/project4/t4.jsp?id=aa
  • 파라미터로 id=aa를 넘김
<%@page import="net.sf.json.JSONObject"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="kr.co.seoulit.member.dto.Member"%>
<%@page import="kr.co.seoulit.member.dao.MemberDAO"%>
<%@page import="kr.co.seoulit.member.dao.MemberDAOImpl"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
MemberDAO dao=MemberDAOImpl.getInstance();
Member dto=dao.selectMember(request.getParameter("id"));
Map<String,Object> map=new HashMap<>();
map.put("member",dto);
JSONObject json=JSONObject.fromObject(map);         //JSP에서 Member객체를 JSON형태로 바꿔줌
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script>
window.onload=function(){
    let data=<%=json%>.member;                         // <%= %> 태그를 이용해서 json객체를 data 변수에 할당
    document.querySelector("#id").value=data["id"];    // json의 값을 텍스트박스의 value에 넘김
    document.querySelector("#pw").value=data["pw"];
    document.querySelector("#addr").value=data["addr"];
    document.querySelector("#tel").value=data["tel"];
}
</script>
ID : <input type="text" /><br/>
PW : <input type="text" /><br/>
ADDR : <input type="text" /><br/>
TEL : <input type="text" /><br/>
</body>
</html> 
  • 자바스크립트 에서는<%= %>를 이용해서 JSP에서 할당한 변수를 가지고 올 수 있다.

출력문

 

JSP에서 List형태의 데이터를 JSON으로 처리하는 방법

  • 여러개의 Member객체를 List형태로 받아서 member의 요소를 출력
<%@page import="net.sf.json.JSONObject"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.HashMap"%>
<%@page import="kr.co.seoulit.member.dto.Member"%>
<%@page import="java.util.List"%>
<%@page import="kr.co.seoulit.member.dao.MemberDAO"%>
<%@page import="kr.co.seoulit.member.dao.MemberDAOImpl"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
MemberDAO dao=MemberDAOImpl.getInstance();
List<Member> list=dao.selectMemberList();        //서버에서 Member를 List형태로 받아오고
Map<String,Object> map=new HashMap<>();          //JSON형태로 변환하기 위해 Map객체 생성
map.put("list",list);                            //Map객체에 키값으로 "list"를 가지는 dao.selectMemberList();를 할당
JSONObject json=JSONObject.fromObject(map);      //Map을 JSONObject로 바꿔줌
%>  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script>
let data=<%=json%>;                               //JSONObejct를 변수 data에 할당
data.list.forEach(                                //data의 키를 list를 가지는 값을 forEach메서드를 
        member => document.write(member.id+"<br/>")   //이용해서 Member객체의 id값을 출력
);
</script>
</body>
</html>

출력문

반응형
'Front-End/JSP' 카테고리의 다른 글
  • [JSP] Include 액션태그
  • AJAX란? JQuery를 이용한 AJAX사용법
  • JSON이란?
  • [JSP] FILTER(필터)
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (63)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (26)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (1)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    react
    배열요소삭제
    배열요소수정
    리액트
    배요소열추가
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
[JSP] 서버에서 클라이언트로 JSON 데이터 전송하기
상단으로

티스토리툴바