Spring/Spring 실습

https://brilliantdevelop.tistory.com/125?category=1018911에서 FreeBoard테이블 엑셀 다운로드를 하였다. 이제 Member테이블에서도 엑셀 다운로드를 하려고 한다. Controller에 다음과 같이 member에서의 excel다운로드기능의 메소드를 추가하려고 한다. ExcelControoler의 excelDownloadMember 메소드 @RequestMapping("/member/excelDown") public void excelDownloadMember(HttpServletResponse response, @ModelAttribute("searchVO")SearchVO searchVO , @ModelAttribute("searchJob") Strin..
POI란 아파치 소프트웨어 재단에서 만든 라이브러리로 마이크로소프트 오피스 파일을 자바 언어로 읽고 쓰는 기능을 제공한다. 마이크로소프트의 excel 파일은 '.xls'와 '.xlsx'이 있다. 이 2개의 차이는 xls : EXCEL2003이전 형식 xlsx : EXCEL2007이전 형식 이다. 이 2개의 excel파일형식에 따라 poi lib도 2개가 존재한다. 이 글에서는 xlsx만 다루도록 하겠다. pom.xml에 dependency를 추가하자. (나는 xlsx만 할 거기 때문에 poi-ooxml dependency만 추가하면 된다. org.apache.poi poi-ooxml 3.7 POI의 주요 메소드 : // 워크북 생성 XSSFWorkbook wb = new XSSFWorkbook(); //..
JQuery.load()는 Ajax의 일종이다. 서버에서 데이터를 로드하고 반환된 HTML을 일치하는 요소에 배치합니다. 이는 /about/chProfile.wow에 요청에 대한 결과화면이다. aboutHome.jsp 창희프로필 창희의술 창희의 피아노 이는 /about/aboutHome.wow에 대한 결과화면이고 jquery.load로 /about/chProfile.wow를 요청해 그 결과를 ".tab-content" 태그에 배치하였습니다. 그래서 보통 jquery.load 에서는 해당 요청에 대한 결과가 특정 화면(html) 일 때 사용합니다. jQuery .load() 메소드 사용법 .load( url [, data ] [, complete ] ) 반환값: jQuery - url : 데이터를 받을 U..
파일 다운로드 현재 freeView에서 다음과 같이 파일이 2개가 있다. 이를 누렀을 때 다운로드가 되도록 해보자. freeView.jsp의 첨부파일 태그를 보면 다음과 같이 되어있다. 첨부파일 파일 ${st.count} ${f.atchOriginalName} Size : ${f.atchFancySize} Down : ${f.atchDownHit} 여기서 주목할건 태그밖에 없다. 태그의 target 속성의 "_blank"는 새창을 연다. 즉 위 태그는 새창을 열면서 서버:포트/contextPath/attach/download/${f.atchNo} (localhost:8080/contextPath(없으면 생략)/attach/download/첨부파일번호)로 요청한다 우리는 이 요청에 맞는 컨트롤러를 만들고 ..
파일업로드 이해하기 웹에서는 이 클라이언트/서버 간 요청/응답을 HTTP 프로토콜로 진행한다. HTTP에서는 파일도 지원해준다. 파일업로드란 클라이언트가 요청에 파일을 포함하고 서버가 요청받은 파일을 처리하는 과정의 일환이다. 클라이언트 : "서버야, 나 Request보낼 때 파일도 포함시켜 보낼게. 이거 서버에 저장해줘" 서버 : "OK. 어디보자. Request에 파일 있군. 알았어 잘 처리했어." 의 과정이다 . 물론 위의 대화를 HTTP프로토콜에서 처리해야 되는데 이게 생각보다 어렵다. 우선 파일업로드를 위해선 다음의 3가지 규칙을 꼭 지켜줘야 한다. (파일을 선택해야되니까..) 태그 method는 POST (밑에서 설명) 태그 enctype=multipart/form-data (밑에서 설명) M..
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값에 맞는 요청이 오면 해당 메소드가..
댓글 개요 댓글은 freeView에만 추가할 예정입니다. 댓글기능을 추가하기전 naver웹툰에 댓글을 참고합시다. URL은 변화가 없는데 댓글부분의 보이는 화면이 다르다. AJAX로 데이터를 변경했기 때문이다. 우리는 Spring 프로젝트 진행 중 freeView화면에서 AJAX로 요청을 하고 Controller에서 DB에 접근해서 댓글데이터를 얻을 것이다. 그리고 ReplyVO(댓글번호, 댓글작성자,댓글내용 등)에 저장할 것이다. @ResponseBody를 붙인 메소드에서 return한 값은 그대로 AJAX succes함수의 파라미터로 온다. 이 ReplyVO를 AJAX요청한 곳에 return 하고 ReplyVO를 자바스크립트로 댓글형태의 태그를 생성한다. Controller //예시 @Response..
더보기 서버 상관없이 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 인터페이스를 제공하고 있으며 다음과 같이 정의..
우리는 지금까지 /join/regist.wow 까지 가서 아이디가 DB에 있는 아이디이면 "중복된 아이디입니다" 라는 메세지를 보여주는 방식으로 회원가입을 했지만 사실,아이디의 중복 여부는 "아이디 중복 확인" 버튼을 눌러서 alert창으로 "중복된 아이디입니다" 또는 "사용할 수 있는 아이디입니다" 같은 메세지를 띄우는 방식으로 아이디 중복체크를 확인하는게 일방적이다. 이 때 아이디중복체크를 위해 현재 step2.jsp 화면이 바뀌지 않고 단순히 아이디 중복체크확인만 하기 위해 ajax를 이용해 비동기 요청을 한다. 이 ajax로 요청한 비동기 요청도 DispatcherServlet의 Controller가 처리한다. 먼저 step2.jsp를 수정하자. 테이블의 ID 부분에 "아이디 중복 확인" 버튼을 ..
@ResponseBody Controller에서 사용할 수 있는 @중에 @ResponseBody가 있다. 일반적으로 Spring에서 요청을 처리하는 메소드를 만들면 다음과 같다. package com.study.temp; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class TempController { @RequestMapping("/idcheck.wow") public String idCheck(String id) { return "idcheck"; } } 이 때 idcheck.wow로 요청을 보낸다면 Disp..
한창희
'Spring/Spring 실습' 카테고리의 글 목록