JAVA
-
websocket:채팅JAVA 2021. 7. 27. 17:16
websocket + 네트워크운영 이해 데이터 보낼 때 송수신 측에서 받는 방식 1) TCP/IP 수신측이 보내는 데이터는 패킷단위로 전송되어 송신측이 받는다. 핸드쉐이크 : 서로 데이터 유실이 없는지 확인하여 계속 소통하며 확인한다. - 장점 : 안전하다. - 단점 : 느리다. 2) UDP 핸드쉐이크가 없다. - 장점 : 빠르다 (TV 같은 것, 빠르다) - 단점 : 데이터가 몇몇 유실될 수 있다.(가끔 끊기는 이유) * TCP/IP 기반의 프로토콜 종류 (1) http : TCP 기반에서 더 추가하여 http 라는 규약이 생긴 것. (2) smtp (3) FTP (4) 사용자가 직접 TCP/IP 기반의 프로토콜을 만들 수도 있다. * 네트워크 운영 개념 client - server 소통 중 ser..
-
3Tier: 예외처리,@QualifierJAVA 2021. 7. 27. 17:06
런타임예외가 아닌 경우에 예외별처리하기 @Autowired I판매DAO 판매DAO; @Override public String 로그인가능여부확인하다(String id, String password) { HashMap 회원번호와성명 = null; try { 판매DAO.기록하다(); A a1 = null; a1.g(); } catch (Exception e) { //그럴 땐 이렇게 instanceof 로 예외의 종류를 확인해 걸면 된다. if(e instanceof ConnectException) { //... } TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return "예외발생"; } return "정상처리"; } 런타임예..
-
Spring:interceptor,3Tier(Presentation,Business,Dataservice)JAVA 2021. 7. 27. 17:03
인터셉터(Interceptor) (전, 후처리기 역할을 수행한다.) 위의 사진을 보면 차이점을 쉽게 알 수 있는데, 둘다 컨트롤러 전에 작업을 처리하는 용도로 사용되지만 호출되는 시점이 다르다. 필터(Filter)는 dispatcherServlet으로 요청이 가기전에 실행되고 인터셉터(Interceptor)는 Controller로 요청이 가기전에 실행이된다. Filter DispatcherServlet 앞단에서 정보 처리 J2EE 표준스펙에 정의되어 있는 기능 ( web.xml 에서 설정 ) Interceptor DispatcherServlet에서 Handler(Controller)로 가기전에 정보 처리 SpringFramework에서 자체적으로 제공하는 기능 ( MVC 에서 설정 ) 출처: https:..
-
Mybatis:설정하기JAVA 2021. 7. 27. 16:23
Mybatis 참고사이트 https://www.baeldung.com/mybatis 이제 DAO 와 같이 DB 연결하는 Mapper 를 사용해 더 쉽게 연결하자! DAO는 JDBC API 였고, 이제 Mybatis API 를 설치한다. JDBC 를 위한 ConnectionPool API 도 필요 없다. DAO - 인터페이스를 만들고 그걸 구현한 클래스에 @Repository 를 걸어 @Autowired 시 인터페이스형으로 선언하여 사용함 Mapper - 인터페이스에 아예 @Mapper 를 걸면 @Autowired 시 알아서 상속받은 클래스가 있는것 처럼 선언되어 사용할 수 있다. (구현하는 클래스 필요가 없다.) DAO vs Mapper : 여러개를 한번에 저장시 DAO 는 중간에 실패해도 초반건 들어가..
-
BLOB 이미지파일업로드JAVA 2021. 7. 27. 11:01
출력과 다운 1. 프로필사진 출력하기 (DB에 blob로 저장된 이미지 꺼내는 버전//이름저장하여 로컬경로로 가져오는 케이스가 아님) >> Profile.java(Controller) @Controller public class Profile{ @Autowired IMemberDAO memberDAO; @RequestMapping("profile/{no}") public void process(HttpServletRequest request, HttpServletResponse response, @PathVariable int no) { Member member = memberDAO.findByNo(no); byte[] profile = (byte[])member.getProfile(); respon..
-
Spring:댓글더보기(ajax.ver)JAVA 2021. 7. 26. 23:28
java 와 javascript 의 차이점 - 메서드에 매개변수의 유동성 void g(int a){} // in java g(); // 오류 //in javascript g(); // 실행 g(5); // 실행 javascript 에는 undefined 형이 있기 때문에 매개변수를 넣야할 int a 부분에 아무것도 없어도 메서드가 실행된다. 그 값은 undefined 형으로 지정되어 있다. @ResponseBody 가 붙었을 때 반환형이 String 또는 void 형이면 /* 기존 컨트롤의 방식 */ @RequestMapping(...) public String process(){} // view명 반환으로 인식 /* ajax 연결 컨트롤의 방식 */ @RequestMapping(...) @Respons..
-
Spring:댓글(ajax.ver)JAVA 2021. 7. 26. 23:17
1. ajax비동기!!!! java 객체와 html,js 의 속성값과 매핑시 , 객체의 멤버변수 이름이 속성값이다! 객체의 이름이 속성값이 아니므로 주의! Content content - 매핑 - board.no : content의 board멤버변수의 no 멤버변수 1) 사전작업 >> pom.xml (다운받을 라이브러리) spring 의 restControlle 들이 json 으로 데이터를 주고 받게 도와주는 라이브러리 정도로 기억하면 된다! (ajax 는 json 을 주고 받기 때문에 필수) com.fasterxml.jackson.core jackson-databind 2.10.1 클라이언트에게 응답으로 view 를 주는 표준의 Controller 와 달리 restController 는 데이터만 갱신하..
-
Spring: 댓글(iframe.ver)JAVA 2021. 7. 26. 23:09
ifram >> 부모프레임 부모내용 일해 1. contentWindow = 자식프레임의 script 에서 설정한 function 을 가져올 수 있음 iframe 의 윈도우객체에 접근하기 contentWindow , contentDocument 조사해보기 (호텔 예약에 사용가능할 수도..?) 예전에 쓴 : opener = 자식창이 부모창의 script 에서 설정한 function 을 가져올 수 있음 >> 자식프레임 자식내용 댓글 >> CommentDAO @Override public void save(Comment comment) { Connection c = null; PreparedStatement ps = null; try { c = ConnectionUtil.getConnection(); ps = ..