본문 바로가기

카테고리 없음

[java] public void Name [return]값 없는 경우 로직 이유

void 메소드 란? : void 메소드는 자신이 일을 시작하고 마무리합니다.

return 메소드란? : 반면 리턴값이 있는 메소드는, 일의 중간 계산을 처리하고 이를 반환합니다.

 

* Controller

 // RequestMapping : 리턴타입 없이 void일 경우, mapping된 url pattern이름과 동일 포워드한다.

@RequestMapping(value="/ui/BldEngyService")  
 public void BldEngyService(HttpServletRequest req, HttpServletResponse res) throws Exception {
    
String BldEngyServiceJson = "";
    
String serviceOpt = req.getParameter("serviceOpt");
String param = "?_type=json";
String apiUrl = "http://apis.data.go.kr/1611000/BldEngyService/" + serviceOpt + param + ServiceKey;

BldEngyServiceJson = gisBimApiServiec.publicDataPortalApi(req, res, apiUrl);      
}

 

* Service

public String publicDataPortalApi(HttpServletRequest req, HttpServletResponse res, String apiurl) throws Exception {

Enumeration e = req.getParameterNames();

while (e.hasMoreElements()) { 

String name = (String) e.nextElement(); 

// System.out.println(name + " : " + req.getParameter(name));

apiurl += "&" + name + "=" + req.getParameter(name);
}


URL url = new URL(apiurl);

BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));

StringBuffer sb = new StringBuffer();
String tempStr = null;

while (true) {
tempStr = br.readLine();
if (tempStr == null)
break;
sb.append(tempStr);
}

br.close();

res.setCharacterEncoding("UTF-8");
res.setContentType("application/json");
res.getWriter().write(sb.toString());

return sb.toString();

}