머어어엉 (104) 썸네일형 리스트형 첨부파일의 다운로드 혹은 원본 보여주기 첨부파일 다운로드 서버에서 MIME 타입을 다운로드 타입으로 지정하고, 적절한 헤더 메시지를 통해서 다운로드 이름을 지정하게 처리한다. 이미지와 달리 다운로드는 MIME 타입이 고정되기 때문에 메서드는 아래와 같이 시작하게 된다. IE/Edge 브라우저의 문제 해결 IE를 같이 서비스해야 한다면 HttpServletRequest에 포함된 헤더 정보들을 이용해서 요청이 발생한 브라우저가 IE 계일인지 확인해서 다르게 처리하는 방식으로 처리한다. HTTP 헤더 메시지 중에서 디바이스의 정보를 알 수 잇는 헤더는 'User-Agent' 값을 이용한다. @RequestHeader 클라이언트(사용자가 사용하고 있는 웹 브라우저의 정보) -> 서버로 user-agent의 정보를 보내준다. Request, Response 간단 개념정리 응답은 서버에서 클라이언트로 뿌려줌? 배운곳 https://medium.com/webeveloper/http-%EC%9A%94%EC%B2%AD%EA%B3%BC-%EC%9D%91%EB%8B%B5-2209bc82f239 HTTP 요청과 응답 서론 medium.com 스프링 MVC 파일 업로드 기본 설정(feat.코배웹) 첨부파일을 서버에 전송하는 방식은 크게 form 태그를 이용하는 방식. Ajax를 이용하는 방식. pom.xml 수정 1.8 5.0.7.RELEASE 1.9.0 1.7.25 javax.servlet javax.servlet-api 3.1.0 provided org.projectlombok lombok 1.18.0 provided web.xml 수정 appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 D:\\java\\upload\\temp 20971520 41943040 20971520 web.xml 의 설정은 WAS(to.. 스프링 트랜잭션 비즈니스에서는 쪼개질 수 없는 하나의 단위 작업을 말할 때 '트랜잭션(Transaction)'이라는 용어를 사용한다. 사전적인 의미로 트랜잭션은 '거래'라는 뜻을 가지지만, 현실적으로는 '한 번에 이루어지는 작업의 단위'를 트랜잭션으로 간주한다. '트랜잭션으로 관리한다' 혹은 '트랜잭션으로 묶는다'는 ㅍ현은 프로그래밍에서는 'AND' 연산과 유사하다. 영소계층에서 '출금'과 '입금'은 각각 데이터베이스와 연결을 맺고 처리하는데 하나의 트랜잭션으로 처리해야 할 경우에는 한쪽이 잘못되는 경우에 이미 성공한 작업까지 다시 원상태로 복구되어야 한다. 스프링은 이러한 트랜잭션 처리를 간단히 XML 설정을 이용하거나, 어노테이션 처리만으로 할 수 있다. 데이터베이스 설계와 트랜잭션 데이터베이스의 정규화가 잘 되어있.. AOP '관점 지향 프로그래밍' '관점' 이라는 용어는 개발자들에게는 '관심사(concern)'라는 말로 통용된다. '관심사'는 개발 시 필요한 고민이나 염두에 두어야 하는 일이라고 생각할 수 있는데, 코드를 작성하면서 염두에 두는 일들은 주로 다음과 같다. 파라미터가 올바르게 들어왔을까? 이 작업을 하는 사용자가 적절한 권한을 가진 사용자인가? 이 작업에서 발생할 수 있는 모든 예외는 어떻게 처리해야 하는가? 위와 같은 고민들은 '핵심로직'은 아니지만, 코드를 온전하게 만들기 위해서 필요한 고민들인데 전통적인 방식에서는 개발자가 반복적으로 이러한 고민을 코드에 반영하게 된다. AOP가 추구하는 것은 '관심사의 분리(separate concerns)'이다. AOP는 개발자가 염두에 두어야 하는 일들은 별도의 '.. Ajax 댓글 처리 댓글 처리 테이블 생성 create table tbl_reply( rno number(10,0), bno number(10,0) not null, reply varchar2(1000) not null, replyer varchar2(50) not null, replyDate date default sysdate, updateDate date default sysdate ); create SEQUENCE seq_reply; alter table tbl_reply add CONSTRAINT pk_reply PRIMARY key (rno); alter table tbl_reply add CONSTRAINT fk_reply_board FOREIGN key (bno) REFERENCES tbl_board (bno.. 인텔리제이와 Gradle 스프링 설정법 프로젝트 생성 프로젝트 우클릭 Add Framework Support 클릭 스프링 선택 OK build.gradle 파일 수정 // https://mvnrepository.com/artifact/org.springframework/spring-context compile group: 'org.springframework', name: 'spring-context', version: '5.2.3.RELEASE' // https://mvnrepository.com/artifact/org.springframework/spring-test testCompile group: 'org.springframework', name: 'spring-test', version: '5.2.3.RELEASE' // https:.. Rest 필요한 데이터만 전송한다. @RestController REST방식에서 가장 먼저 기억해야 하는 점은 서버에서 전송하는 것이 순수한 데이터라는 점이다. 기본의 컨트롤러에서 Model에 데이터를 담아서 JSP 등과 같은 뷰로 전달하는 방식이 아니므로 기존의 Controller와는 조금 다르게 동작한다. @RestController 이전에는 @Controller와 메서드 선언부에 @ResponseBody를 이용해서 동일한 결과를 만들 수 있다. 단순 문자열 반환 @RestController는 jsp와 달리 순수한 데이터를 반환하는 형태이므로 다양한 포맷의 데이터를 전송할 수 있다. 주로 일반 문자열이나 JSON, XML등을 사용한다. 객체의 반환 객체를 반환하는 작업은 JSON이나 XML을 이용한다. Res.. 이전 1 2 3 4 5 6 7 ··· 13 다음