Spring MVC - HTTP 요청과 응답
2022. 11. 16. 22:38
Spring/Ch2. Spring MVC
HttpServletRequest @Controller public class RequestInfo { @RequestMapping("/requestInfo") public void main(HttpServletRequest request) { System.out.println("reqeust.getMethod()="+reqeust.getMethod()); System.out.println("reqeust.getgetProtocol()="+reqeust.getProtocol()); System.out.println("reqeust.getScheme()="+reqeust.getScheme()); } HttpServletRequest 의 메서드 서버의 포트 0~1023 : 예약된 포트 65535개 : 사용 ..
Spring MVC - 데이터 변환과 검증2
2022. 9. 25. 10:49
Spring/Ch2. Spring MVC
Validator 객체를 검증하기 위한 인터페이스. 객체 검증기(validator) 구현에 사용 수동 검증 UserValidator.java package com.fastcampus.app; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator; public class UserValidator implements Validator{ @Override public boolean supports(Class clazz) { // TODO Auto-generated method stub return U..
Spring MVC - 데이터 변환과 검증
2022. 9. 24. 18:35
Spring/Ch2. Spring MVC
Date 를 원하는 형식을 변경 String birth 를 Data 타입으로 변경 User.java package com.fastcampus.app; import java.util.Date; public class User { private String id; private String pwd; private String name; private String email; private Date birth; private String sns; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPwd() { return pwd; } public void setPwd(String ..
Spring MVC - DispatcherServlet
2022. 9. 23. 21:30
Spring/Ch2. Spring MVC
공통 부문 역할 전처리 Spring MVC 의 요청 처리 과정 ViewResolver 주요 메서드 메서드 설명 void initStrategies(ApplicationContext context) 기본 전략을 초기화 void doService(HttpServletRequest request, HttpServletResponse reponse) doDispatch() 호출 void doDispatch(HttpServletRequest request, HttpServletResponse reponse) 실제 요청을 처리 void processDispatchResult(HttpServletRequest request, HttpServletResponse reponse, HandlerExecutionChain)..
Spring MVC - 예외 처리2
2022. 9. 22. 21:36
Spring/Ch2. Spring MVC
@ResponseStatus 응답 메시지의 상태 코드를 변경할 때 사용 @ControllerAdvice 에 일부로 패키지을 잘 못 입력하자 그러면 500 번 내부서버오류가 날 것이다 GlobalCatcher.java package com.fastcampus.app; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; @ControllerAdvice("com.fastcampus.bpp") public class GlobalCatcher { @ExceptionHan..
Spring MVC - 예외 처리
2022. 9. 22. 08:53
Spring/Ch2. Spring MVC
예외 처리 ExceptionController.java package com.fastcampus.app; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ExceptionController { @RequestMapping("/ex") public String main() throws Exception{ try { throw new Exception("예외가 발생했습니다."); } catch (E..
Spring MVC - 로그인 페이지 만들기3
2022. 9. 21. 17:47
Spring/Ch2. Spring MVC
로그인 성공 시 전에 있었던 페이지로 이동 BoardController.java list 메서드 리턴 값에 request.getReqeustURL() 을 추가해 GET 방식으로 URL 값을 넘긴다 package com.fastcampus.app; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @Co..
Spring MVC - 로그인 페이지 만들기2
2022. 9. 20. 19:27
Spring/Ch2. Spring MVC
게시판 이용시 로그인 상태가 아니면 로그인 화면으로 이동 boardList.jsp 중고헌터 Home Board login Sign in This is BOARD This is BOARD This is BOARD This is BOARD This is BOARD BoardList.java package com.fastcampus.app; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.spri..
Spring MVC - Session, 세션
2022. 9. 19. 23:57
Spring/Ch2. Spring MVC
Session 이란 서로 관련된 요청들을 하나로 묶은 것 - 쿠키(브라우저에 저장)를 이용 browser 마다 개별 저장소(session 객체, 서버에 저장) 를 서버에서 제공 - 1 : 1 "a collection of related HTTP transactions made one by browser to one server" 세션의 생성 과정 세션 객체 얻기 HttpSession session = request.getSession(); session.setAttribute("id", "asdf"); 세션과 관련된 메서드 메서드 설명 String getId() 세션의 id를 반환 long getLastAccessedTime() 세션 내에서 최근 요청을 받은 시간을 반환 boolean isNew() 새로..
Spring MVC - 로그인 페이지 만들기
2022. 9. 19. 12:50
Spring/Ch2. Spring MVC
로그인 페이지 loginForm.jsp Login ${URLDecoder.decode(param.msg)} 로그인 아이디 기억 | 비밀번호 찾기 | 회원가입 LoginController.java package com.fastcampus.app; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springfr..
Spring MVC - redirect와 forward
2022. 9. 19. 11:07
Spring/Ch2. Spring MVC
redirect와 forward 의 처리 과정 비교 redirect redirect 시 get 방식으로만 전송 forward RedirectView JstlView InternalResourceView sevlet-context.xml
Spring MVC - @RequestMapping
2022. 9. 19. 02:49
Spring/Ch2. Spring MVC
URL 패턴 ?는 한 글자, *는 여러 글자, ** 는 하위 경로 포함. 배열로 여러 패턴 지정 종류 URL pattern 매칭 URL 1. exact mapping /login/hello.do http://localhost/app/login/hello.do 2. path mapping /login/* http://localhost/app/login/ http://localhost/app/login/hello http://localhost/app/login/hello.do http://localhost/app/login/test 3. extension mapping *.do http://localhost/app/hi.do http://localhost/app/login/hello.do /** : 경로가 ..
Spring MVC - 회원가입 페이지 만들기2
2022. 9. 18. 16:03
Spring/Ch2. Spring MVC
form 데이터 전송 방법 중 GET 방식 막기 //@RequestMapping(value="/register/save", method=RequestMethod.POST) @PostMapping("/register/save") // Spring 4.3 부터 추가 public String save() { return "registerInfo"; } } @GetMapping 추가 package com.fastcampus.app; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.Po..
Spring MVC - 회원가입 페이지 만들기
2022. 9. 18. 13:08
Spring/Ch2. Spring MVC
html 호출할 때 resources 없이 하기 servlet-context.xml mapping 에서 resources를 지우자 registerForm.html Register 아이디 비밀번호 이름 이메일 생일 페이스북 카카오톡 인스타그램 회원 가입 registerInfo.jsp 다수의 값은 paramValues 를 사용해 배열로 값을 받는다 id=${param.id} pwd=${param.pwd} name=${param.name} email=${param.email} birth=${param.birth} sns=${paramValues.sns} sns=${paramValues.sns[0]} sns=${paramValues.sns[1]} sns=${paramValues.sns[2]} 유효성 검사 jav..
Spring MVC - @ModelAttribute
2022. 9. 17. 22:50
Spring/Ch2. Spring MVC
@ModelAttribute 적용 대상을 Model의 속성으로 자동 추가해주는 어노테이션 반환 타입 또는 컨트롤러 메서드의 매개변수에 적용 가능 package com.fastcampus.app; import java.util.Calendar; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation...
Spring MVC - @RequestParam
2022. 9. 17. 15:07
Spring/Ch2. Spring MVC
한글 필터 web.xml encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* HomeController.java package com.fastcampus.app; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.Req..
Spring MVC - Filter
2022. 9. 17. 13:55
Spring/Ch2. Spring MVC
Filter 공통적인 요청 전처리와 응답 후처리에 사용한다. 로깅, 인코딩 등 package com.fastcampus.app; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletReques..
Spring MVC - JSTL(JSP Standard Tag Library)
2022. 9. 17. 13:43
Spring/Ch2. Spring MVC
${i} ${status.count}. arr[${status.index}]=${elem} msg=${param.msg} msg= 메시지가 없습니다. 성인입니다. 성인이 아닙니다. 값이 유효하지 않습니다. Server time is 1 2 3 4 5 6 7 8 9 10 1. arr[0]=10 2. arr[1]=20 3. arr[2]=30 4. arr[3]=40 5. arr[4]=50 6. arr[5]=60 7. arr[6]=70 메시지가 없습니다. 값이 유효하지 않습니다. Server time is 2022/09/17 13:33:04
Spring MVC - EL(Expression Language)
2022. 9. 17. 13:28
Spring/Ch2. Spring MVC
EL person.getCar().getColor()= person.getCar().getColor()=${person.getCar().getColor()} person.getCar().getColor()=${person.car.color} name= name=${requestScope.name} name=${name} id= id=${pageContext.request.getParameter("id")} id=${param.id} "1"+1 = ${"1"+1} "1"+="1" = ${"1"+="1"} "2">1 = ${"2">1} null = ${null} null+1 = ${null+1} null+null = ${null+null} "" + null = ${""+null} ""-1 = ${""-1} ..
Spring MVC - 유효 범위(scope)와 속성(attribute)
2022. 9. 17. 13:24
Spring/Ch2. Spring MVC
유효 범위(scope)와 속성(attribute) 4개 영역 저장소 기본 객체 유효 범위 설명 pageContext 1개 JSP 페이지 JSP페이지의 시작부터 끝까지. 해당 JSP 내부에서만 접근가능. 페이지 당 1개 request 1개 이상 JSP페이지 요청의 시작부터 응답까지. 다른 JSP로 전달 가능. 요청마다 1개 session n개 JSP페이지 session의 시작부터 종료까지(로그인~로그아웃). 클라이언트 마다 1개 application context 전체 Web Application 의 시작부터 종료까지. context 내부 어디서나 접근 가능 모든 클라이언트가 공유. context마다 1개 속성 관련 메서드 설명 void setAttribute(String name, Object value..