전체 글(118)
-
Spring Multipart 및 파일업로드
파일업로드 이해하기 웹에서는 이 클라이언트/서버 간 요청/응답을 HTTP 프로토콜로 진행한다. HTTP에서는 파일도 지원해준다. 파일업로드란 클라이언트가 요청에 파일을 포함하고 서버가 요청받은 파일을 처리하는 과정의 일환이다. 클라이언트 : "서버야, 나 Request보낼 때 파일도 포함시켜 보낼게. 이거 서버에 저장해줘" 서버 : "OK. 어디보자. Request에 파일 있군. 알았어 잘 처리했어." 의 과정이다 . 물론 위의 대화를 HTTP프로토콜에서 처리해야 되는데 이게 생각보다 어렵다. 우선 파일업로드를 위해선 다음의 3가지 규칙을 꼭 지켜줘야 한다. (파일을 선택해야되니까..) 태그 method는 POST (밑에서 설명) 태그 enctype=multipart/form-data (밑에서 설명) M..
2022.04.21 -
Spring @RequestMapping의 consumes , produces속성
consumes @ResponseBody @RequestMapping(value = "/reply/replyList.wow") public Map replyList(ReplySearchVO searchVO){ List replyList=replyService.getReplyListByParent(searchVO); Map map=new HashMap(); map.put("result", true); map.put("data", replyList); map.put("size", replyList.size()); return map; } 위는 freeView에서 댓글을 보여줄 때 사용하는 댓글리스트 요청 처리 메소드이다. 기본적으로 @RequestMapping은 value값에 맞는 요청이 오면 해당 메소드가..
2022.04.21 -
Spring AJAX ,@ResponseBody로 댓글달기
댓글 개요 댓글은 freeView에만 추가할 예정입니다. 댓글기능을 추가하기전 naver웹툰에 댓글을 참고합시다. URL은 변화가 없는데 댓글부분의 보이는 화면이 다르다. AJAX로 데이터를 변경했기 때문이다. 우리는 Spring 프로젝트 진행 중 freeView화면에서 AJAX로 요청을 하고 Controller에서 DB에 접근해서 댓글데이터를 얻을 것이다. 그리고 ReplyVO(댓글번호, 댓글작성자,댓글내용 등)에 저장할 것이다. @ResponseBody를 붙인 메소드에서 return한 값은 그대로 AJAX succes함수의 파라미터로 온다. 이 ReplyVO를 AJAX요청한 곳에 return 하고 ReplyVO를 자바스크립트로 댓글형태의 태그를 생성한다. Controller //예시 @Response..
2022.04.15 -
Spring ajax,@ResponseBody로 mail인증기능 구현하기
더보기 서버 상관없이 main메소드에서 보내는 것부터 해보자. pom.xml Spring에서 mail을 보내보자. mail을 사용하기 위해선 다음과 같이 2가지 dependency가 필요하다. javax.mail mail 1.4.7 org.springframework spring-context-support ${org.springframework-version} Javax.mail은 SMTP, POP3, IMAP을 통해 전자 메일을 주고 받을 수 있게 하는 자바 API이다. piring-context-support에는 캐시,메일,스케줄링,UI 관련 기능들이 포함되어있다. interface MailSender 스프링은 메일 발송 기능을 위한 MailSender 인터페이스를 제공하고 있으며 다음과 같이 정의..
2022.04.12 -
Spring ajax,@ResponseBody로 id 중복체크 기능 구현하기
우리는 지금까지 /join/regist.wow 까지 가서 아이디가 DB에 있는 아이디이면 "중복된 아이디입니다" 라는 메세지를 보여주는 방식으로 회원가입을 했지만 사실,아이디의 중복 여부는 "아이디 중복 확인" 버튼을 눌러서 alert창으로 "중복된 아이디입니다" 또는 "사용할 수 있는 아이디입니다" 같은 메세지를 띄우는 방식으로 아이디 중복체크를 확인하는게 일방적이다. 이 때 아이디중복체크를 위해 현재 step2.jsp 화면이 바뀌지 않고 단순히 아이디 중복체크확인만 하기 위해 ajax를 이용해 비동기 요청을 한다. 이 ajax로 요청한 비동기 요청도 DispatcherServlet의 Controller가 처리한다. 먼저 step2.jsp를 수정하자. 테이블의 ID 부분에 "아이디 중복 확인" 버튼을 ..
2022.04.05 -
JAVA 직렬화
자바는 메모리에 생성된 객체를 파일 또는 네트워크로 출력할 수가 있다.객체는 문자가 아니기 때문에 바이트 기반 스트림으로 출력해야 한다. 객체를 출력하기 위해서는객체의 데이터(필드값)를 일렬로 늘어선 연속적인 바이트로 변경해야 하는데, 이를 직렬화(serialization)이라고 한다. 반대로 파일에 저장되어 있거나 네트워크에서 전송된 객체를 읽을 수도 있는데, 입력 스트림으로부터 읽어들인 연속적인 바이트를 객체로 복원하는 것을 역직렬화(deserialization)이라 한다. package java.io;public interface Serializable {}Serializable의 인터페이스를 보면 메소드가 하나도 없는 것을 볼 수 있다. 아무런 구현해야 할 메소드도 없는 이 인터페이스가 왜 ..
2022.04.05