티스토리 뷰
반응형
자바로 웹서버를 개발하다보면 Controller 에서 수신하는 파라미터 정보가 필수인지 아닌지 직관적으로 확인이 필요한 경우가 많다
- 프로퍼티의 속성만 보고서 required 여부를 판단할수 있도록 명시를 해주도록 하자.
- required로 정의된 프로퍼티가 없을때 AOP의 Exception처리로 MissingServletRequestParameterException 를 정의해주자.
- 단, 해당 파라미터가 누락되었을때만 Exception처리에 포함되고, 파라미터는 있고 값이 empty이거나 요구한 값과 상이한것에 대해서는 로직단에서 구현해야 한다.
/*컨트롤러단 파라미터 속성 정의 예*/
@RequestMapping
(value =
"/test"
, produces=
"text/html"
)
@ResponseBody
public
String paymentCallback(
@RequestParam
(value =
"param1"
, defaultValue =
""
, required=
true
) String startDateTime,
@RequestParam
(value =
"param2"
, defaultValue =
""
, required=
true
) String endDateTime,
@RequestParam
(value =
"param3"
, defaultValue =
""
, required=
false
) String tradeNo,
HttpServletResponse res)
throws
Exception {
}
/*LogException 예*/
@Override
public
ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e) {
if
(shouldApplyTo(request, handler)) {
if
(logger.isDebugEnabled())
logger.debug((
new
StringBuilder(
"Resolving eception from handler ["
)).append(handler).append(
"]: "
).append(e).toString());
Map<String, Object> error =
new
HashMap<String, Object>();
if
(e
instanceof
MissingServletRequestParameterException) {
System.out.println("필수 파라미터 누락! : " + e.getMessage());
}
}
}
파라미터 누락시 아래와 같은 로그를 확인할 수 있으므로 로그추적에도 용이함
7
월
08
01
:
04
:
50
오전 ERROR - LoggingExceptionResolver.resolveException(
91
) | METHOD : POST
7
월
08
01
:
04
:
50
오전 ERROR - LoggingExceptionResolver.resolveException(
92
) | URI : /test
7
월
08
01
:
04
:
50
오전 ERROR - LoggingExceptionResolver.resolveException(
93
) | Parameter : {param2=1¶m=3}
7
월
08
01
:
04
:
50
오전 ERROR - LoggingExceptionResolver.resolveException(
94
) | IP :
10.1.1.1
7
월
08
01
:
04
:
50
오전 ERROR - LoggingExceptionResolver.resolveException(
95
) | errorMessage : org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter
'param1'
is not present
'프로그램 > JAVA' 카테고리의 다른 글
톰캣 common-dbcp (0) | 2016.10.18 |
---|---|
Troubleshooting 스레드사용법 (0) | 2016.10.12 |
자바 메모리 튜닝 (0) | 2016.10.12 |
자바 메모리 분석방법 및 분석도구 (0) | 2016.10.12 |
자바 버전 관리 및 운영 alternatives (0) | 2016.07.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- mysql count 성능
- select count(*) performence
- java.lang.UnsatisfiedLinkError
- common-dbcp
- 인덱스 자료구조
- google vm ssh
- 원격접속 무료툴
- oauth sso 차이
- mysql count
- 아이맥 m4
- openai api key
- no net in java.library.path
- 작은거에소스라치게놀라는나
- jenkins remote api
- 젠킨스 api
- jenkins asyncpeople
- spring mybatis
- 객체지향언어 자바
- 젠킨스 윈도우 설치
- openai 키 발급
- 원격접속툴
- Google ssh console
- jenkins user list
- springboot server header
- 스프링 크로스도메인
- 스프링 마이바티즈 연동오류
- response server header
- BeanCreationException
- imac m4
- 아이맥24 m4
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함