목록Spring (42)
코딩 노트
특정 컨텐츠(ex: 게시글)에 표시를 남겨 이를 관리할 수 있는 형태의 시스템이다. 유사한 내용으로 북마크, 장바구니, 신고, 싫어요, 팔로우 등이 있다. 토글(toggle) 형태의 시스템을 구현하는 것 좋아요를 회원에 하면 팔로우, 게시글에 하면 좋아요이다. 좋아요란? (개체랑 관계를 기준으로 설명) : 회원과 게시글 board_like 테이블 생성 CREATE TABLE board_like ( member_id REFERENCES member(member_id) ON DELETE CASCADE NOT NULL, board_no REFERENCES board(board_no) ON DELETE CASCADE NOT NULL, PRIMARY KEY (member_id, board_no) ); --조회수 ..
pocketmonDto 생성 package com.kh.spring11.dto; //POJO 클래스 //= Plain Old Java Object //= Spring에 등록하지 않아도 됨 public class PocketmonDto { private int no; private String name; private String type; @Override public String toString() { return "PocketmonDto [no=" + no + ", name=" + name + ", type=" + type + "]"; } public int getNo() { return no; } public void setNo(int no) { this.no = no; } public String..
컨트롤러 일하기전 컨트롤러 일한 후 화면이 전환된 후 equals는 동일한 객체가 아니라 동일한 문자열인지 비교하는 것 관리자 인터셉터 AdminInterceptor /* * 관리자 외의 접근을 차단하는 인터셉터 */ @Component public class AdminInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //HttpSession에 있는 level 항목이 관리자인지 확인하여 통과 또는 차단 HttpSession session = reque..
DTO - Data Transfer Object - 데이터 변환용 객체 - 데이터베이스와 애플리케이션간의 변환 - 테이블/뷰와 똑같이 만듦 VO - Vlaue Object - 값을 가진 객체 - DB와 관계없이 필요한 값을 모아서 저장 - 읽기 전용으로 작성 - 필요하다면 계산메소드를 추가해도 된다. 내 입맛대로 쓰기 위한 객체 = VO (DB랑 상관 없음) DB를 그대로 옮겨 쓰기 위한 객체 = DTO PaginationVO 클래스 생성 //VO(Value Object) // - 내 입맛대로 데이터를 모아서 저장하는 클래스(DB무관) // - 등록하지 않고 필요할 때마다 만들어서 사용 @Data public class PaginationVO { private String type, keyword; //..
답글등록 (답글 쓰기) detail.jsp 수정 글쓰기 답글쓰기 BoardController에 GetMapping - write 구문 추가 //등록(새글 or 답글) // - boardParent라는 항목의 유무에 따라 새글과 답글을 구분하여 처리 @GetMapping("/write") public String write(Model model, @RequestParam(required = false) Integer boardParent) { //답글이라면 원본글 정보를 화면에 전달 if(boardParent != null) { BoardDto originDto = boardDao.selectOne(boardParent); model.addAttribute("originDto", originDto); mo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ExJKX/btsrthtBJmr/AbAzxxhlUULrSOQXVxEM8K/img.png)
게시판 검색기능 구현 search의 특징 - 입력창에 입력을 하면 x버튼이 생긴다. list.jsp 제목 작성자 검색 홀더는 못 쓰는 글자가 없게 하기 위해서, 공격을 방지하기 위해서 사용한다. 원래 * 말고 항목을 다 써주는 것이 좋지만 지금은 편의상 *을 사용한다. (올바르지 않은 구문) boardDaoImpl @Override public List selectList(String type, String keyword) { String sql; if (type.equals("board_title")) { //type이 제목인 경우 sql = "select * from board " + "where instr(board_title, ?) > 0 " + "order by board_no desc"; } ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dc1DGS/btsrjrRoi7c/RoSFKgpbQE4VU5KeD7AkMK/img.png)
구현 순서 DB → Dto → Mapper → Dao → DaoImpl 1. board(게시판) DB drop table board; create table board( board_no number primary key, board_writer references member(member_id) on delete set null, board_title varchar2(300) not null, board_content varchar2(4000) not null, board_readcount number default 0 not null, board_likecount number default 0 not null, board_replycount number default 0 not null, board_c..