Programming/스프링(spring) - Enterprise 33

스프링(spring)/ +더하기 4(1:1게시판 시스템)

1. 1:1채팅 아이디어를 변용해서 1:1 게시판 시스템을 만들어보고자 한다. 게시물 리스트를 받아오는데, 해당 주제에서 글을 쓴 본인 아이디로 접속 시에는 1:1게시판 버튼이 안보이게 일단 설정, jsp파일에 링크를 연결시켜준다. 대결 *debate라는 jsp에 ?쿼리로, 해당 데이터를 넘겨줘서 get페이지로 사용하겠다. 2. 그 먼저 1:1게시판의 특징을 데이터 모델링 해서 Controller 단에서 url과 데이터 처리 로직을 매핑시켜 준다. 주제 관련 게시물A의 1:1 논쟁 게시판 클릭 > 게시물A의 내용과 논쟁 요청자(보낸이) user가 작성한 게시글 데이터 내용 // 1:1 논쟁 게시판 시스템 @RequestMapping(value = "/debate", method = RequestMetho..

스프링(spring)/ +더하기 3(세션 활용 게시물 등록)

1. 세션을 활용하여 회원 권한으로 글 쓰는 시스템을 만들어 본다. 먼저, jsp단에서 시작할 링크로 태그를 걸어준다. 글쓰기 * '?쿼리'를 사용하여 어떠한 값을 포함해서 get요청을 보냈다. 이것은 외래키로 참고할 데이터를 커스텀. 2. 그리고는 get요청을 처리할 Controller에서 url매핑 먼저 해준다. //게시물 작성 @RequestMapping(value = "/write", method = RequestMethod.GET) public void getWirte(@RequestParam("sub_idx") int sub_idx, Model model) throws Exception { List subject = null; subject = service.subject(sub_idx); m..

스프링(spring)/ +더하기 2(데이터베이스 상호작용, 주제별 게시판 만들기)

지금까지 데이터베이스를 활용해서 간단하게는 하나의 테이블에서 하나의 작업을 처리하여 결과물로 가져왔었다. 1. 이번에는 여러 작업을 여러 테이블에서 처리하여 jsp에서 뿌려주는 방법을 알아본다. 먼저, 시작할 링크로 태그를 걸어준다. 인공지능과 자동화 * 아직 많은 자료를 반복으로 처리해야할 지점이 아니기에 / '?쿼리'를 사용하여 get요청을 보낸다. 2. 그럼 url을 매핑시켜줄 Controller단 // 주제 페이지 @RequestMapping(value = "/subject", method = RequestMethod.GET) public void getSubject(Model model, @RequestParam(value = "sub_idx", required = false, defaultVa..

스프링(spring)/ +더하기 1(검색 시스템과 알림 시스템)

1. 검색하는 방법에 대해 생각해보다가 검색은 한 번에, 출력은 원하는 것만 하는 것이 편해 보였다. 그래서 단순히 하나의 키워드로 데이터베이스 검색 시스템 다듬어 보자. 먼저 임포트 시킬 것들. 부트스트랩과 제이쿼리 그리고, 입력란과 버튼을 하나 만든다. 검색 그리고 자바스크립트로 버튼 행위 제어 document.getElementById("searchBtn").onclick = function() { let keyword = document.getElementsByName("key")[0].value; if (keyword.trim() === "") { return; } else { // 검색어가 입력된 경우 검색 기능 수행 let url = "/board/search?keyword=" + keywo..

스프링(spring)/ 회원 시스템 구축 4(암호화)

1. Spring Security를 사용하기에 먼저 pom.xml 설정을 해준다.(스프링 시큐리티) org.springframework.security spring-security-core 5.0.8.RELEASE org.springframework.security spring-security-web 5.0.8.RELEASE org.springframework.security spring-security-config 5.0.8.RELEASE 2. 보안 관련이라 컨테이너 관리 파일을 따로 만들어 사용했다. 기존의 servlet-context이 있는 폴더에(src/main/webapp/WEB_INF/spring/appServlet) spring-security.xml을 생성 후, 아래 코드를 추가한다. * ..

스프링(spring)/ 회원 시스템 구축 3(회원정보 수정 및 탈퇴)

0. 이번에는 뭔가 시작부터 매퍼에 코드를 추가 해놓고 시작해보자. 더 편할 것 같다. 어쨌든 회원 정보를 수정해서 데이터 처리 작업을 해야할 테니까. accountMapper.xml파일에 추가. UPDATE user SET pwd = #{pwd}, email = #{email} * 만들려는 프로젝트의 특성상 바꾸고 싶은 컬럼만 적었다. 1. 그럼 다음은 DAO와 Service를 먼저 설정해준다. UserDAO와 UserService파일에 아래 코드 추가 // 회원정보 수정 public void memberUpdate(UserVO vo)throws Exception; 그리고 UserDAOImpl파일에 아래 코드 추가 // 정보 수정 @Override public void memberUpdate(UserV..

스프링(spring)/ 회원 시스템 구축 2(로그인 페이지)

0. 로그인은 생각해보면 정보일치와 세션에 관해서 만져주면 될 것 같은 느낌이 든다. 먼저, account폴더에 login.jsp파일을 생성후, home.jsp에 로그인 링크를 하나 건다. 로그인 1. 먼저 세션(사용자 상태 유지 기능)을 사용해야 하기에 UserColtroller 파일부터 정리. 우선, 아래 기능들을 상단에 임포트 시킨다. import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.web.servlet.mvc.support.RedirectAttributes; *import javax.servlet.http.HttpServletRequest; imp..

스프링(spring)/ 회원 시스템 구축 1(회원가입 페이지)

0. 무엇보다 회원 데이터를 위해, 새로운 데이터 테이블을 생성 사용할 것이므로, 기존 BoderVO파일이 있는 패키지에, UserVO 파일 생성.(사용할 데이터베이스 테이블을 먼저 만들어 둔다.) package com.project.model; public class UserVO { private String id; // 유저 아이디 private String pwd; // 비밀번호 private String nick; // 닉네임 private String ncode; // 국가 private String email; // 이메일 private String text; // 추가 텍스트 private String channel; // 채널 정보 private int scount; // 카운트 정보 pr..

스프링(spring)/ 게시판 구축 5(좋아요 기능)

1. '좋아요'나 '하트' 등은 글을 읽는 페이지에서 구축하는 게 좋겠다고 생각해서, 조회 상세 링크 페이지에서 일단 시작한다. view.jsp파일에 수정과 삭제가 있는 div태그에 간단히 추가. 좋아요 좋아요 ${view.hcount} * heart라는 url요청을 사용. view모델 객체의 hcount 사용해서 즉각적으로 데이터를 보여주기 위함. 2. 삭제 기능처럼 클릭하면 바로 적용되니까, 따로 heart 뷰 파일은 패스하고 컨트롤러~ BoardController에 삭제기능 비슷하게 베끼면 된다. //좋아요 @RequestMapping(value = "/heart", method = RequestMethod.GET) public String getHeart(@RequestParam("idx") in..

스프링(spring)/ 게시판 구축 4(검색 기능)

1. 이제 블로그에서 모든 게시물을 상대로 검색(search)하는 기능 구현해보자. search.jsp 파일 만들어주고~페이지 구현은 list 페이지와 비슷한데 기능만 추가된 느낌일 것이다. 번호 제목 내용 작성자 날짜 ${list.idx} ${list.title} ${list.text} ${list.nick} 제목 내용 제목+내용 작성자 검색 * 먼저, 태그는 searchType란 이름으로 선택지에 해당하는 데이터를 보내는 역할. input으로 키워드 적는 란 만들고, 그리고 버튼 id로 searchBtn을 자바스크립트로 넘겨 버튼에 대한 행위를 만든다. [0]번째 id를 가져오는 이유는 자바스크립트는 id를 배열로 저장하기 때문. 복수로 저장가능 2. 일단은 뭐니뭐니 해도 컨트롤러에 뭐라도 추가 하려..