해당 포스팅은 강의 복기용으로 키워드를 기록하는 용도의 포스팅입니다.
--------------------------------------------------------------------------------------------------
디스패처서블릿에서 URL처리를 하는 방법
@RequestMapping(value="경로", method=RequestMethod.POST)
@GetMapping("URL")
@PostMapping("URL")
Autowired어노테이션의 시그니처 확인.
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {
-> 어노테이션 적용 대상과 유지정책을 알 수 있다.
스프링 Encoding 설정
기존에는 response나 request 객체에서 Encoding 설정을 세팅해주었다.
하지만 불편한 점은 서블릿마다(url마다) 인코딩 설정을 해주어야 했다는 점.
스프링에서는 web.xml에 필터링 설정을 하면 모든 url에 인코딩을 적용할 수 있어 편리하다.
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>value</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
필터를 만들고, 적용할 url-pattern을 매핑해주면 된다.
/* url패턴에 해당 필터를 적용하였으니
프로젝트 내 모든 url에서 인코딩 설정이 적용되는 것.
화면)
index.jsp ( / 슬래시 url 로 접근하는 첫 페이지 )는 다 사용한다.
다만 페이지 이동처리를 바로하는지 버튼을 눌러 이동하는 지 등은 개발자가 결정할 사항.
이제는 모든 url마다 서블릿을 만들지 않아도 된다.
1. 브라우저의 url 요청은 디스패처 서블릿에서 처리한다.
2. 요청된 urll은 핸들러매핑에서 컨트롤러에 매핑한다.
3. 매핑된 컨트롤러에서 비즈니스 로직을 수행한다.
4. 뷰 리졸버(View Resolver) 에서 View를 선택하여 브라우저로 응답한다.
컨트롤러는 도메인, vo 기준으로 나누어서 만든다.
패키지 설정
controller
domain
service
store
컨트롤러의 리턴값은 항상 String이다. (url을 반환하기 때문)
Bean 주입 어노테이션 (DI어노테이션) 의 동작
@Resource
Bean의 네임속성이 일치하는 것을 우선으로 탐색한다.
없으면 타입으로 탐색한다, 그것도 없으면 @Qualifier로 탐색한다.
@Autowired
Bean의 타입이 일치하는 것을 우선으로 탐색한다
없으면 네임속성으로 탐색한다. 그것도 없으면 @Qualifier로 탐색한다.
@Injection
Bean의 타입이 일치하는 것을 우선으로 탐색한다.
없으면 @Qualifier로 탐색한다. 그것도 없으면 네임속성으로 탐색한다.
request를 대체하여 사용하는 Spring의 객체는 Model model
컨트롤러의 return. 리다이렉트는 redirect: 를 붙인다.
return "redirect: /login.do";
return "/login.do";
viewResolver의 역할
컨트롤러가 리턴하는 String 값에
prefix(접두사) 상위경로 , suffix(접미사) .jsp
를 붙여준다.
메이븐에서 dependency가 에러가 날경우
WEB-INF 하위에 lib폴더를 만들어서 넣어줘도
작동이 된다.
로그인 기능)
${empty loginUser}
${not empty loginUser}
@RequestParam(" ")
@ModelAttribute
input태그의 name값과 vo의 변수명이 일치할 때 가능.
값까지 다 setting된 객체를 얻을 수 있다. 매우 편리.
@ModelAttribute 어노테이션의 시그니처
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ModelAttribute {
jstl에서도 stringTokenizer를 사용할 수 있다.
'개발 > KH국비지원과정' 카테고리의 다른 글
[KH국비지원 웹개발자 과정] Day_60 키워드, 게시물수정(첨부파일), 검색기능(동적쿼리), JSP 잔기능 (0) | 2022.09.14 |
---|---|
[KH국비지원 웹개발자 과정] Day_59 키워드,스프링MVC 페이징 등 기능 구현, RowBounds (0) | 2022.09.13 |
[KH국비지원 웹개발자 과정] Day_57 키워드, 메이븐,스프링(Spring) 프레임워크 (1) | 2022.09.05 |
[KH국비지원 웹개발자 과정] Day_56 키워드, UML,클래스다이어그램 (0) | 2022.09.01 |
[KH국비지원 웹개발자 과정] Day_55 키워드, 마이바티스실습 (0) | 2022.09.01 |