스프링부트 배달사이트(19)
-
스프링부트+jsp로 배달사이트 만들기-27 관리자 가게상세/AOP
압축파일의 관리자 상세페이지 jsp, js, css를 붙여습니다 store폴더의 storeDetail.jsp는 관리자페이지도 같이 사용하기 위해 수정본으로 새로 준비했습니다 storeDetail.js의 다음 부분을 수정합니다 지난 장에서 DB에서 내 가게를 등록했었는데 등록한 가게 외에는 접근할 수 없게 막아야합니다 남의 가게의 정보를 수정할 수 없어야 하니까요 인터셉터나 AOP를 사용할 수 있겠지만 컨트롤러의 파라미터를 체크하기 위해 AOP를 사용하겠습니다 pom.xml에 추가합니다 org.springframework.boot spring-boot-starter-aop 스프링부트 메인메서드에 @EnableAspectJAutoProxy를 붙여줍니다 @EnableAspectJAutoProxy @Spring..
2021.12.17 -
스프링부트+jsp로 배달사이트 만들기-25 매장검색
store 폴더 아래에 jsp, css, js를 추가합니다 search.jsp 현재 주소지를 기준으로 검색됩니다. 최근 검색어 전체삭제 ${keywordList } 검색 결과가 없습니다 search.css main { width: 100%; max-width: 1200px; margin: 0 auto; min-height: calc(100vh - 312px); } main form { margin: 20px auto 50px; } main form .input_box { width: 50%; height: 45px; background: #F6F6F6; border-radius: 10px; margin: 0 auto; display: flex; } main form .input_box>div:first-..
2021.12.11 -
스프링부트+jsp로 배달사이트 만들기-23 찜한 가게 목록
StoreController에 찜한 가게 목록을 불러올 메서드를 추가합니다 // 찜한 가게 목록 @GetMapping("/likes/store") public String likes(Model model, @AuthenticationPrincipal LoginService user) { long userId = 0; List likesList = new ArrayList(); if (user == null) { } else { userId = user.getUser().getId(); likesList = storeService.likesList(userId); } System.out.println("찜한 가게 : " ); for(int i=0;i
2021.12.10 -
스프링부트+jsp로 배달사이트 만들기-21 인터셉터로 주소 불러오기
현재 메인페이지에서 저장한 주소는 세션에 저장 되있는 값만 사용하기 때문에 세션시간이 지나거나 서버가 내려가면 저장된 주소가 사라지게 됩니다 인터셉터를 활용해 같이 저장했던 쿠키를 확인하고 쿠키에 주소정보가 있다면 그 값을 꺼내 사용할 수 있게 하겠습니다 인터셉터를 사용하기 위해 interceptor패키지를 만들고 AddressInterceptor 클래스를 생성합니다 public class AddressInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {..
2021.12.10 -
스프링부트+jsp로 배달사이트 만들기-20 주문목록 수정/페이징
orderList메서드의 urimapping을 페이지 이동을 위해 하나 더 추가 합니다 @GetMapping({"/orderList", "/orderList/{page}"}) @PathVariable을 받을 타입을 int로 하게 되면 page부분이 없을경우 에러가 나게 됩니다 그래서 Integer로 null도 받을 수 있게하고 필수 입력을 false로 설정합니다 orderList메서드를 page와 함께 넘길 수 있게 변경하고 model에도 페이지정보를 담습니다 @GetMapping({"/orderList", "/orderList/{page}"}) public String orderList(@AuthenticationPrincipal LoginService user, Model model, @PathVar..
2021.12.09 -
스프링부트+jsp로 배달사이트 만들기-19 매장목록 수정/페이징
지금까지 매장목록은 별점, 댓글 수, 가게 오픈상태가 주석처리 되어있었습니다 위 데이터를 불러오기 위해 storeList 쿼리를 수정합니다 WITH R_COUNT AS ( SELECT STORE_ID ,ROUND(AVG(SCORE), 1) SCORE ,COUNT(REVIEW_CONTENT) REVIEW_COUNT ,COUNT(BOSS_COMMENT) BOSS_COMMENT_COUNT FROM BM_REVIEW GROUP BY STORE_ID ), STORE AS ( SELECT S.*, T.*, CASE WHEN MOD(24 - S.OPENING_TIME + S.CLOSING_TIME, 24) != 0 THEN MOD(24 - S.OPENING_TIME + S.CLOSING_TIME, 24) ELSE 2..
2021.12.09 -
스프링부트+jsp로 배달사이트 만들기-18 주문상세 페이지
OrderController에 추가 합니다 @GetMapping("/orderListDetail/{orderNum}") public String orderDetail(@PathVariable String orderNum, Model model, @AuthenticationPrincipal LoginService user) { OrderList orderDetail = orderService.orderListDetail(orderNum); if (user != null && (user.getUser().getId() != orderDetail.getUserId())) { System.out.println("다른 사용자"); return "redirect:/"; } else if (user == null) ..
2021.12.09 -
스프링부트+jsp로 배달사이트 만들기-16 리뷰 사진 올리기
사진 업로드 시 저장을 프로젝트 내부에 하게되면 재배포시 파일이 날아갈 수 있으니 외부 경로에 저장 할 수 있게 합니다 외부 경로 설정을 위해 config패키지에 설정파일을 추가합니다 @Configuration public class WebConfig implements WebMvcConfigurer { @Value("${resource.path}") private String resourcePath; @Value("${upload.path}") private String uploadPath; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(uploadPath) ...
2021.12.09 -
스프링부트+jsp로 배달사이트 만들기-07 회원가입 03 비밀번호 암호화하기
비밀번호를 평문으로 저장했을시 서버가 해킹당하면 비밀번호가 그대로 유출될수 있습니다 spring-security의 PasswordEncoder를 사용하면 쉽게 비밀번호를 암호화 할 수 있습니다 org.springframework.boot spring-boot-starter-security pom.xml에 추가후 실행해보면 스프링시큐리티 기본 페이지가 보입니다 커스텀 로그인페이지를 사용하기 위해 설정파일을 추가합니다 @EnableWebSecurity @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Bean public BCryptPasswordEncoder encodePwd() { return new BCr..
2021.12.06