I leaned/스프링,스프링부트

스프링에서의 예외처리 1. try-catch 컨트롤 메서드 내에서 try-catch로 처리 2. ExceptionHandler메서드가 처리 컨트롤러에서 처리 @ControllAdvice클래스에서 모든 처리 3. 예외 종류별로 뷰지정- SimpleMappingExceptionResolver 4. 응답 상태 코드 별로 뷰 지정 - @ExceptionHandler 컨트롤러와 비슷한 형태이다. 에러가 발생하면 해당에러에 맞는 처리를 하는 파트이다. 기본적으로 @Exception핸들러는 같은컨트롤러클래스에서만 감지를 함 @ExeceptionHandler(처리할예외종류), 예외가 여러개변 배열로 넣기 jsp에서 isErrorPage="true"로 해주면 model로 안넘겨도 exception속성들을 사용할 수 있다..
세션이란? 서버에 저장됨 (톰캣의 세션저장소) 서로 관련된 요청들을 하나로 묶은 것 쿠키를 이용 브라우저(브라우저에서 쿠키를 저장함)마다 개별 저장소(session객체)를 서버에 제공 수동종료: invalidate(예:로그아웃) 자동종료: 시간초과 일반적으로 한세션 -> 로그인부터 로그아웃까지 서버에 부담이 가기 때문에 타임아웃필수, 세션에는 최소한의 정보만 브라우저에서 쿠키설정을 차단으로 해놓으면 url에 세션을 담아보내도록 설계 (jsp에선 url태그를 쓰면 자동으로 됨) 새로운 곳에서 요청이 올때마다 객체를 만듬(1대1대응) 세션의 생성과정 서버에서 세션객체를 만들고 응답시 세션아이디를 브라우저에 넘겨준다. 이후 요청시 브라우저에서 쿠키와 함께 세션아이디를 넘겨준다. 세션아이디를 통해 서버는 클라이..
쿠키란? 브라우저(클라이언트)에 저장됨 이름과 값의 쌍으로 구성된 작은 정보 아스키 문자만 가능 유효기한 포함 서버에서 생성후 전송 -> 브라우저에 저장 -> 유효기간 이후 자동 삭제 서버에 요청시 domain,path가 일치(하위경로포함)하는 경우에만 자동 전송 클라이언트 식별 기술 쿠키생성 Cookie cookie = new Cookie("id","asdf"); //쿠키 생성 cookie.setMaxAge(60*60*24); //24시간 유효기간 설정 response.addCookie(cookie); //응답에 쿠키 추가 쿠키삭제 Cookie cookie = new Cookie("id",""); // 변경할 쿠키와 같은 이름 쿠키 생성 cookie.setMaxAge(0); //유효기간을 0으로 설정 ..
redirect 요청이 두번 간다. 잘못된 요청일시 클라이언트에게 알려준다. 스프링컨트롤러에서 return "redirect:/register/add"; 으로 사용됨 forward 요청이 한번 간다. 서버에서 알아서 처리하기에 클라이언트는 잘못된 요청인 것, 어디서 처리하는지 모른다. 잘못된 요청일시 내부에서 해당처리파트로 넘긴다. 스프링컨트롤러에서 return "forward:/register/add"; 으로 사용됨 forward를 이용한 MVC, write:컨트롤러, request:모델, login: 뷰 forward 코드예시 JSTLView 컨트롤러에서 jsp를 리턴하면 실행되는 뷰 RedirectView 302: 300번대 에러는 redirect에러 컨트롤러에서 redirect를 반환시 디스패쳐서..
서블릿에서는 주소매핑시 @WebServlet을 사용하고 스프링에서는 @RequestMapping을 사용한다. @RequestMapping(value"/주소", method=ReuqestMethod.POST) 등으로 사용가능하며 스프링4.3부터는 @GetMapping, @PostMapping등으로 좀 더 간단하게 사용할 수 있다. 클래스에 붙이는 @RequestMapping을 이용하면 URL의 공통부분을 생략할 수있다. @Controller // ctrl+shift+o 자동 임포트 @RequestMapping("/register") public class RegisterController { //@RequestMapping(value="/register/add", method=RequestMethod.GE..
URL 인코딩 퍼센트 인코딩을 이용 URL에 포함된 non-ASCII문자를 문자 코드(16진수)문자열로 변환 윤재 %EC%9C%A4%EC%9E%AC URL에 한글을 입력할시에는 URL 인코딩이 필요하다. 우리의 주소창에 http://localhost:8080/ch2/register/save/윤재 라고 보이는 것은 브라우저에서 한글로 보여주기 때문이고 실제로는 (복사해서 메모장에서 보면) http://localhost:8080/ch2/register/save/%EC%9C%A4%EC%9E%AC 이런식으로 되어있다. (tip.한글그대로 주소를 복사하고싶으면 주소첫글자를 빼고 복사하면 한글그대로 복사가 된다) spring에서도 url에 메세지를 표현하고 싶으면 인코딩하여 출력을 하여야한다. @PostMappin..
@RequestParam 어노테이션 생략 가능 요처으이 파라미터를 연결할 매개변수에 붙이는 애너테이션 required: 필수여부를 설정할 수 있음 필수가 아니라면 null로 받아오고(url?year까지 입력하면 빈문자열로 받아옴), 필수인데 안넣으면 400 에러를 반환한다. default는 false defaultValue : 기본값을 설정해줄 수 있다. required가 false일 때 아무 입력을 안주면 null로 들어온다. 이것을 Int등으로 형변환시 에러가 난다(500번대,서버잘못). 이를 방지하기 위해 기본값을 설정해줄 수 있다. 또는 required를 true로 설정한다. @Controller public class RequestParamTest { @RequestMapping("/reques..
이 둘은 jsp에서 문법을 좀더 간단하고 효율적으로 사용하기 위해 사용되는 문법들이다. EL Expression Lanuge 값들을 간단하게 표시하기 위해 사용 대신 ${값}으로 사용 하는 것 -보다 간단하게 표현가능 예시 코드 person.getCar().getColor()= person.getCar().getColor()=${person.getCar().getColor()} person.getCar().getColor()=${person.car.color} name= name=${requestScope.name} //request의 맵 이름이 requestScope임 name=${name} //뺴고 적어도 된다. 그러면 우선순위순으로 page,request,session,application순으로 검..
윤재에요
'I leaned/스프링,스프링부트' 카테고리의 글 목록 (3 Page)