2021-05-10(월) kosta - 스프링수업 3일차(@여러 어노테이션)
먼저 수업시작전 전시간 복습을 하도록 하겠다.
서버를 시작하기전에 web.xml에 이상이 없어야 서버가 실행된다. 아래 사진에 보는것처럼 param-value값에도 이상이 없어야한다.
아래 servlet-context.xml을 보면 mvc:annotation-driven에서 @controller를 읽어간다.
servlet-context.xml에 아래처럼 base-package에 두개를 넣으면 두 패키지에서 다 @을 읽어온다.
BuildPath에 등록된 폴더를 class폴더라고 한다.
저번에 servetlet-context에 data관련된 객체도 모두 넣어놨었지만 너무 길어져서 별도의 datasource-context.xml을 만들어서 옮겨주었다.
원래 servlet-context.xml에 파일에는 아래 내용만 남았다.
그리고 web.xml에 param을 추가해주어야 datasource-context.xml을 읽어온다.
참고로 아래 사진처럼 엉망으로 만들면 사용할수 없다.
-------------------------------------------------------------------------------------------------------------------------------
연습을 위해서 TestController.java를 만들었다.
아래처럼 사용하면 mapping충돌난다. 이렇게 사용할수 없다.
그리고 아래 처럼 value가 생략되어있다.
Mapping충돌 해결을 위해서 get과 post방식으로 나누었다.
TestController를 아래처럼 바꿔주었다.
먼저 jsp파일을 넣을 폴더를 만들어주었다. 폴더이름은 test이다.
그리고 mv.setViewName("helloForm");이라고 해주어서 View를 담당할 helloForm.jsp를 만들어서 아래처럼 만들었다.
그리고 mv.setViewName("helloResult");이라고 해주어서 View를 담당할 helloResult.jsp를 만들어서 아래처럼 만들었다.
----------------------------------------------------------------------------
이번에는 kostaController를 만들어보도록하겠다.
jsp파일을 만들어서 테스트해보니 setname을 주지 않아도 default로 연결해주었다.
그러면 이번에는 Controller에서 parameter받아오는 방법에 대해 알아보도록하자.
@RequestParam을 활용해서 parameter를 받아올수 있으나 그냥 타입과 이름만 써도 받아올수있다.
아래 StringMyname도 파라미터를 읽어온다.
원래 사용하던 방식으로 parameter를 받아 올수도 있다.참고하자
그럼 mv.addObject를 해서 바인딩을하고 sample3Result로 넘겨주도록한다.
그러면 sample3Result.jsp에서 아래처럼 사용된다.
이번에는 userVO라는 것을 만들었다. 무엇을 학인하려고 하냐면 객체를 만들면 submit되어 넘어온 값이 객체 안에 알아서 들어가는 것을 확인하기 위해서다.
아래 sysout으로 출력된것을 보면 userVO에 parameter들이 알아서 담긴것을 확인할 수 있다.
map 을 생성한 곳에서 알아서 잘 들어가는 것을 확인할수있다.
------------------------------------------------------------------------------------------
이제 empcontroller로 넘어가보도록하자.
재요청할때는 return에 아래 처럼 사용한다.
jsp에서도 controller에 맞게 몇가지 수정해주었다. action도 do로 바꾸고 enctype도 지웠다. 그렇다면 post방식에서 한글이 깨질텐데 어떻게 해야할까?
web.xml에 아래 내용을 추가해주면 된다.
그리고 아래는 session에서도 user로 바인딩하고 model에서도 user로 바인딩 할때의 경우이다.
아래도 비슷하게 테스트 한것이다.
그러면 아래처럼 scope를 넣어서 읽어올수있다.
세세한 조정을 위해서 request와 session이 필요하다.
아래처럼 쓸수도 있다.
내일 datasource설정하는방법, 마이바티스로 넘어간다.
kostaController에서 emplist를 조회하는 이것저것 만들었다. 자세한것 프로젝트를 참고하자.
아래 joblist도 kostacontroll에서 조회되게 만들었다.
---------------------------------------------------------------------------------
예외에 대해서 알아보겠다. arithmeticException은 저기에서 아닌것은 다른곳에서 처리하는 것을 설정한것이다.
error폴더를 만들고 아래처럼 에러jsp를 만들어주었다.
error폴더를 만들고 아래처럼 에러jsp를 만들어주었다.
그리고 servlet.xml을 아래와 같이 만들었다.
아래처럼 에러를 일으켜보았다.
그런데 내부 브라우저는 에러를 처리해주는 페이지가 별도로 있어서 에러페이지 안나타났다.
그래서 jsp페이로 가서 response.setstatus200이라고 하니 내부 브라우져에서도 잘된다.
4시부터 deptController완성하기를 했다. 궁금하다면 프로젝트 파일을 참고하도록 하자.