• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

11강 질문입니다.

20.07.13 19:13 작성 조회수 118

1

11강 강의듣다가 의문이 생겨서 질문드립니다.

BorderController에서

@RequestMapping(value="/borderReply.do")

public String borderReply(HttpServletRequest request,ModelMap model) throws Exception

{

String userId="";

String no="";

//글쓰기권한 검사도 가능.

if(request.getSession().getAttribute("USER_ID") == null)

{

request.getSession().invalidate();

return "redirect:/login.do";

}

else

{

userId = request.getSession().getAttribute("USER_ID").toString();

}

no = request.getParameter("no").toString();

model.addAttribute("userId",userId);

model.addAttribute("no",no);

return "border/borderreply";

}

 위 진한 색으로 된 toString()들을 왜 해주는 것인지요?

안해도 작동되지 않나요?

답변 1

답변을 작성해보세요.

0

request.getParameter("no").toString();

쪽은 네. 안해도 동작합니다.

회사에서도 사용을 안합니다.

request.getParameter("no");로 사용하는 것을 권장드립니다.

그러나 간혹 request.getParameter("no").toString();을 사용하는데가 있는데

request.getParameter("no")의 반환값이 null이면 toString()과정에서 콘솔창에 오류가찍힙니다.

(jsp의 <input type="text" name="no"/>가 없는경우, 악의적으로 없앤경우 null이 들어오게 됩니다.)

이러한 이유로 사용하는데도 있습니다.

(일반적으로 유효성체크로 null인지 사전에 검사하기에 toString()을 사용안합니다.

null값 체크는 강의버전2의 유효성체크하는 EGOV_WEB2소스코드를 참조바랍니다.못 찾으시면 질문주셔도됩니다.)

 

request.getSession().getAttribute()쪽은 toString()으로 명시적 형변환을 통해

반환값 Object를 String으로 변경해주는 작업을 해줬습니다.

감사합니다.