- VO : ValueObject
- DB와 java 사이에 데이터를 쉽게 주고받고, 조작하기위해 만든 바구니
- 속성들을 private로 선언하는 이유
- getter : 읽기 → 보안적인 이유
- setter : 쓰기 → 속성을 public으로 열어버리면 객체명.속성명으로 바로 접근 가능
- 바로 접근 가능하면 이상한 데이터를 넣고 수정하는것을 막을 방법이 없음
- 때문에 속성을 private로 놓고 public으로 선언한 setter를 사용하도록 함
public class TestVO {
private String name;
private int age;
private ArrayList<String> friends;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age > 100 || age < 0) {
System.out.println("1~100사이의 값을 입력하세요");
return;
}
this.age = age;
}
public ArrayList<String> getFriends() {
return friends;
}
public void setFriends(ArrayList<String> friends) {
this.friends = friends;
}
}
Lombok을 사용하여 Getter와 Setter를 만든다.
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
//@NoArgsConstructor
//@Data 권장 X , 일부상황에서 디버깅이 어려워짐
public class TestVO {
private String name;
private int age;
private ArrayList<String> friends;
public void setAge(int age) {
if(age > 100 || age < 0) {
System.out.println("1~100사이의 값을 입력하세요");
return;
}
this.age = age;
}
}
Cross-origin
- 프로토콜, 도메인명, 포트번호 중 1개라도 다르면 cross-origin
- script, css는 cross-origin에 걸리지 않음
- ajax요청에 대해서만 same-origin정책을 실시
- HTTP Clients , Fluid 를 추가하고 ajax로 서버에 데이터를 요청하고 서버에서 http cilent를 사용해 데이터를 가져오는 방식으로 cross origin을 해결
$.ajax({
method:"get",
url:"/sample/suhyen/googleNews" ,
dataType:"text", //요건 일단 text로 하는 게 디버깅에 유리
success:function(data){
console.log(data);
document.getElementById("disp").innerHTML = data;
},
error: function (xhr, status, error) {
console.log("code: " + xhr.status)
console.log("message: " + xhr.responseText)
console.log("error: " + error);
}
});
@Controller
@RequestMapping("/suhyen")
@Slf4j /* 롬복이 지원 logger를 따로 안 맹그러도 됌*/
public class MyController {
@GetMapping(value = "/get")
public String getName(HttpServletResponse response) {
return "ajaxTest";
}
@GetMapping(value = "/googleNews")
@ResponseBody
public String getNews(HttpServletResponse response) throws Exception {
String contents = Request.get("<https://news.google.com/rss/search?q=blackpink>")
.execute().returnContent().toString();
return contents;
}
}