-
카테고리
-
세부 분야
웹 개발
-
해결 여부
미해결
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()들을 왜 해주는 것인지요?
안해도 작동되지 않나요?
답변을 작성해보세요.
0
개발자Park
지식공유자2020.07.13
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으로 변경해주는 작업을 해줬습니다.
감사합니다.
답변 1