분류 전체보기(51)
-
스프링부트+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로 배달사이트 만들기-22 찜하기(회원)
주석 해제 하지 않았던 부분을 주석 해제 합니다 영업시간이 지난 매장에서 메뉴 선택시 알림창이 뜹니다 찜하기(하트) 버튼 클릭 시 서버로 매장 번호를 전송하고 매장 번호를 로그인 사용자는 db에 비로그인 사용자는 쿠키에 배열로 저장합니다 데이터를 받을 컨트롤러를 작성합니다 StoreController // 찜하기 @ResponseBody @PostMapping("/store/likes") public long likes(long id, String likes, @AuthenticationPrincipal LoginService user, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException ..
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로 배달사이트 만들기-17 xss 방어하기
사용자가 리뷰 작성 시 와 같은 내용을 끼워 넣게 되면 매장입장에선 의도치 않은 스크립트가 실행되게 됩니다 네이버의 Lucy Xss filter를 사용하게 되면 이런 공격을 간단하게 막을 수 있습니다 Lucy Xss filter를 사용하기 위해 해당 위치에 추가합니다 pom.xml com.navercorp.lucy lucy-xss-servlet 2.0.1 WebConfig //Lucy Xss filter 적용 @Bean public FilterRegistrationBean getFilterRegistrationBean(){ FilterRegistrationBean registrationBean = new FilterRegistrationBean(); registrationBean.setFilter(new..
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로 배달사이트 만들기-15 리뷰작성
리뷰 작성을 위해 StoreController에 추가합니다 // 리뷰 작성 @PostMapping("/store/review") public String review(Review review, MultipartFile file, @AuthenticationPrincipal LoginService user) throws IOException { if (file.isEmpty()) { String img = "/img/none.gif"; review.setReviewImg(img); } else { } long userId = user.getUser().getId(); review.setUserId(userId); storeService.reviewWrite(review); return "redirect:/..
2021.12.08 -
스프링부트+jsp로 배달사이트 만들기-14 주문완료
주문 시 db에 저장 할 주문 정보는 order테이블에 메뉴정보는 order_detail테이블에 json으로 저장합니다 json을 편하게 변환하기 위해 gson라이브러리를 사용하겠습니다 com.google.code.gson gson 저장 후 maven 업데이트를 해도 에러가 뜰때가 있는데 이럴땐 서버를 완전히 종료 후 재실행하면 적용됩니다 https://sumin2.tistory.com/7 JSON 변환하기 (Gson , json-simple) 1. Gson 라이브러리로 변환하기 2. json-simple 라이브러리로 변환하기 1. Gson maven 라이브러리 추가 com.google.code.gson gson 변환할 클래스 class Student { String name; int age; publi..
2021.12.08