안녕하세요 IT여행자입니다.
JSP를 사용하여 웹을 개발할 때 <form/> 안에 있는 정보를 VO객체에 담을 수 있는 방법 중 가장 손쉬운 방법은 아마도 <jsp:useBean/>을 사용하는 것이 아닐까 합니다. 그런데 Servlet 구조를 사용하게 되면서 <jsp:useBean/>처럼 손쉽게 <form/> 안에 있는 값들을 VO에 담을 수 있는 방법이 없게 되었습니다(이 부분은 아마도 제가 방법을 알지 못할 수도 있습니다.)
그래서, Servlet 코드 안에서 <form/> 태그 안에 있는 값을 VO로 만들어주는 메서드를 정의해서 사용하곤 합니다. 항목이 몇 개 되지 않는다면 별 문제가 되지 않지만 항목의 수가 많아질수록 그 수고로움이 말도 아니게 됩니다. 즉,
String id = request.getParameter("id");
...
MemberVo vo = new MemberVo();
vo.setId(id);
...
위와 같은 코드들이 한 페이지 이상이 되는 경우도 허다합니다. 이럴 때 JSP나 JavaScript 부분에서 Servlet을 직접 호출하지 않고 <jsp:useBean/>을 사용할 수 있는 JSP 페이지를 호출하고, 호출된 JSP페이지에서 <jsp:useBean/>을 통해 VO에 값을 담은 후 Servlet을 forwarding 하는 방법으로 프로세스를 우회하시면 <form/> 안에 있는 값들을 VO에 담기 위한 코드를 수고롭게 작성하지 않아도 됩니다. 개괄적인 흐름은 아래의 그림과 같습니다.
[설명]
1. 먼저 폼태그에 서버로 전달할 값들을 담아 action='bean.jsp' 지정하는 것과 같이 중간 경유지인 bean.jsp로 지정하고 폼을 전송합니다.
2. bean.jsp에서는 전달된 폼의 값들을 <jsp:useBean/> 태그를 사용하여 vo에 담은 후 request.setAttribute()을 사용하여 request영역에 vo을 추가합니다, 그러고 나서, 원래 폼에 있는 값들을 전달하려고 했던 servlet.do로 request정보와 response정보를 forwarding 합니다.
3. servlet에서는 request에 담긴 vo객체를 getAttribute()을 사용하여 가져와 dao에 넘겨 비즈니스 로직을 처리하면 됩니다.
위와 같은 방법을 사용하게 되면 웬만한 CRUD와 관련하여 <form/> 정보를 아주 간편하게 dao에 넘겨 처리할 수 있게 될 것입니다.
이상 IT여행자 수첩이였습니다.
'작은 모듈(IT구슬)' 카테고리의 다른 글
이클립스에서 javascript theme 지정하기 (0) | 2022.11.20 |
---|---|
favicon 오류? (0) | 2022.11.18 |
이클립스에서 DBeaver 플러그인 설치하기 (0) | 2022.07.16 |
Firefox cache 비활성화 (0) | 2021.05.27 |
USB나 이동 디스크에 MySQL Server 설치하기 (0) | 2021.05.26 |