본문 바로가기

스프링9

[Spring MVC] Ajax로 게시판 만들기 일반적인 스프링 게시판은 @GetMapping 그리고 ModelAttribute로 리스트와 페이징을 처리한다. 그래서 게시글을 검색하거나 목록 페이징를 넘기면 웹페이지가 새로 로딩된다. 하지만 Ajax방식으로 페이징을 처리하면 새 로딩 없이 게시글 목록을 갱신할 수 있다. View에서 Ajax 넘겨주는 function 작성 우선 Controller에서 게시판 리스트를 처음 출력해주는 부분은 기존과 동일하게 Get방식으로 만든다. @Autowired private NoticeService service; @GetMapping("/notice/list") public String viewList(Model model, @SessionAttribute(name = "loginMember", required =.. 2024. 4. 10.
[MyBatis] mapper.xml의 parameterType에 인자 2개 넣기 parameterType MyBatis에서 SQL문에 들어가는 인자의 데이터 형태를 반드시 명시해 줘야 하며, 이는 parameterType로 설정한다. 숫자면 int, 문자면 String 등 을 명시해야 Spring이 제대로 작동한다. 만약 여러 개의 인자를 넣고 싶다면, 해당 인자들의 집합을 Java 객체 클래스로 따로 선언하여 사용하는 것이 효율적이다. 예를 들어 회원정보를 저장할 때 Member객체를 생성하여 insert문에 보내주면 된다. INSERT INTO MEMBER ( mNO, ID, PASSWORD, ROLE, NAME, STATUS, ENROLL_DATE, MODIFY_DATE ) VALUES( 0, #{id}, #{password}, DEFAULT, #{name}, DEFAULT, .. 2024. 4. 9.
Spring MVC Project 회원가입 프로세스 회원가입 프로세스 예시 1. Client가 View에서 회원가입 요청 Client에서 View의 JSP페이지에 회원가입 양식을 작성하게 제출 버튼을 누르게 되면, 해당 Form의 데이터가 전송되어 회원가입 요청이 전달된다. 해당 예시에서 JSP파일의 코드를 보면, 로 설계했기에 "member/enroll"로 "post"방식으로 요청이 간다. input코드들의 name에 따라 데이터가 변수이름을 갖고 전달이 되는데, 아이디는 name="id", 비밀번호는 name="password", 이름은 name="name"의 변수명을 가지게 된다. 버튼은 button type="submit" 으로 타입을 제출로 설정했기에 누르면 입력된 데이터로 요청을 제출하는 기능을 가진다. 아이디 비밀번호 이름 Create an .. 2024. 4. 4.
Spring MVC Project 로그인 프로세스 로그인 프로세스 예시 1. Client가 View에서 아이디-비밀번호 제출 사용자가 아이디와 비밀번호를 제출하게 되면, 해당 제출 form의 데이터가 전송된다. 이 때 요청에 포함된 데이터로는 아이디, 비밀번호, form의 action 그리고 method가 있다. 이번 예시에서는 다음과 같은 from이 사용되어, "/login"으로 post방식으로 아이디와 비밀번호 데이터를 보내게 된다. 이에 "/login"의 post방식이 매핑된 controller부분으로 요청이 전해지게 된다. 2. Controller로 요청 전달 이번 예시에서 controller.java가 다음과 같은 처리를 하도록 코딩되었다. @PostMapping("/login") // POST임을 알리는 어노테이션 public String l.. 2024. 4. 3.
Spring MVC Project의 구조 Spring Framework (Spring MVC Project) 구조 스프링 프레임워크 프로젝트(Maven)을 만들 때 사용되는 구조를 간단하게 표현하면 다음 그림과 같다. Client 요청을 처리하는 프로세스 Client가 URL로 View에 접근하여 정보를 요청 View -> Dispatcher로 요청 전달 -> HandlerMapping 해당 요청을 매핑한 Controller가 있는지 검색 -> Controller로 요청 전달, 처리할 것을 요구 Controller에서 요청을 처리. 처리과정에서 DB접근이 필요하다면 -> Service의 메소드 호출 Service -> Mapper의 메소드 호출, 매핑된 테이블/컬럼/속성/SQL구문에 접근 Mapper -> DB로 SQL구문 실행 DB -> Ma.. 2024. 4. 2.
[Spring] 세션(Session) 그리고 로그인 세션이란? HTTP에서 통신을 할 때, 사용자(client)와 서버간 요청과 응답 등으로 데이터를 주고 받게 된다. 이 때, 연결이 끊어진 이후에도 사용자에 대한 정보를 기억하기 위해 서버에서 데이터를 보관하는 방법이 세션(session)이고, 사용자 측에서 데이터를 보관하는 방법이 쿠키(Cookie)이다. 스프링-lombok에서 세션 어노테이션 스프링-lombok에서 세션을 사용하기 위해 다음 어노테이션을 주로 사용한다. // loginMember는 세션에 저장된 속성값으로 처리된다는 의미 @SessionAttributes("loginMember") public class TestController { @GetMapping("/") public String test1 (Model model, // 세션.. 2024. 3. 25.
[Spring] 프로젝트에 Dependency추가하기 (+Json파싱) Java에서 JSON 파싱 자바에서 Json데이터를 파싱할 때, 주로 org.json.simple 라이브러리에서 메소드를 호출해서 파싱하는 것이 간편하다. 요약하자면 다음과 같은 코드로 파싱한다. Json데이터 -> 파싱 -> JsonObject로 변환 -> key-value에서 key입력으로 value검색 순서로 진행된다. 여기서 JsonObject는 key-value로 구성된 객체이다. // 먼저 Json데이터를 읽는 메소드를 호출한다 JSONParser jsonParser = new JSONParser(); // Json데이터를 JsonObject형태로 변환한다. JSONObject rootObj = (JSONObject) jsonParser.parse(제이손데이터); // key값으로 value를.. 2024. 3. 16.
스프링 프로젝트에서 로그아웃 기능 만들기 Controller에서 로그아웃 기능을 구현하는 간단한 방법 1. @RequestMapping("/logout") public String logout(SessionStatus status) { // status: 세션의 상태를 확인하는 인자 log.debug("status : " + status.isComplete()); // isComplete : 세션이 완료 되었는지 status.setComplete(); // 세션을 종료시키는 메소드 log.debug("status : " + status.isComplete()); return "redirect:/"; } 2. @GetMapping("/logout") public String logout(HttpSession session) { session.in.. 2024. 2. 22.
이클립스 스프링 워크스페이스 인코딩 세팅 이클립스에서 스프링 워크스페이스를 처음 세팅할 때, 인코딩을 UTF-8로 전부 맞춰주는 작업을 해야 한글이 깨지지 않고 잘 나오게 된다. 매우 중요한 작업이지만 세팅할 때 꼭 저번에 어떻게 했는지 까먹고 찾아보게 돼서 간단하게 기록을 남기고자 했다. 1) 우선, 상단의 Window - Preferences를 클릭한다 2) 'encoding'을 검색해서 인코딩 관련 설정들이 나오도록 해, 각 항목의 인코딩을 UTF-8로 바꿔준다. 보통 Workspace, CSS Files, HTML Files, JSP FIles, XML Files 5개를 바꿔주면 된다. 3) content 라고 검색해서, 다양한 파일에 대한 인코딩도 바꿔주도록 한다. 2024. 2. 22.