티스토리 뷰
반응형
    
    
    
  안녕하세요. Nerd-Lee입니다.
공부 내용은, 인프런 박매일님의[NarP Series]MVC 프레임워크는 내 손에[나프1탄] 을 참고하였습니다.
MVC 1단계인, Servlet 환경으로만 만들어보고, MVC 2단계로 넘어가고
나중에는 Spring Framework를 사용하는 방식의 강의입니다.
MVC 1단계는, Controller + Model 만을 사용하는 방식입니다.
진도가 빠르게 나가지 않아, 중요하다고 생각하는 부분들만 작성할 예정입니다.
1. 회원정보 수정, 취소, 돌아가기 버튼 만들기
- MemberContentController에서 만들어준다.
- 기본틀은 다음과 같다.
@WebServlet("/memberContent.do")
public class MemberContentController extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // request로  파라미터 받아오기
        int number = Integer.parseInt(request.getParameter("num"));
        MemberDAO dao = new MemberDAO();
        MemberVO vo = dao.memberContent(number);
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("</head>");
        out.println("<body>");
        out.println("<form action='/memberUpdate.do' method='post'>");
        out.println("<input type='hidden'  name='number' value='" + vo.getId() + "'/>");
        out.println("<table border='2'>");
        // 회원 정보가 있다면
        if(vo != null) {
            out.println("<tr>");
            out.println("<td colspan='2'>" + vo.getName() + " 회원님의 상세보기 </td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<td>번호</td>");
            out.println("<td>" + vo.getNumber() + "</td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<td>아이디</td>");
            out.println("<td>" + vo.getId() + "</td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<td>비밀번호</td>");
            out.println("<td>" + vo.getPassword() + "</td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<td>이름</td>");
            out.println("<td>" + vo.getName() + "</td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<td>나이</td>");
            out.println("<td><input type='text' name='age' value='" + vo.getAge() + "'/></td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<td>이메일</td>");
            out.println("<td><input type='text' name='email' value='" + vo.getEmail() + "'/></td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<td>전화번호</td>");
            out.println("<td><input type='text' name='phone' value='" + vo.getPhone() + "'/></td>");
            out.println("</tr>");
        }
        else {
            out.println("<tr>");
            out.println("<td>일치하는 회원이 없습니다.</td>");
            out.println("</tr>");
        }
        out.println("<tr>");
        out.println("<td colspan='2' align='center'>");
        out.println("<input type='submit' value='수정하기'/>");
        out.println("<input type='reset' value='취소'/>");
        out.println("<input type='button' value='돌아가기'/>");
        out.println("</td>");
        out.println("</tr>");
        out.println("</table>");
        out.println("</form>");
        out.println("</body>");
        out.println("</html>");
    }
}- 수정하기 버튼을 누르면, id와 input의 데이터인 나이, 이메일, 전화번호의 데이터를 같이 넘겨줘야한다.
- form은, input의 데이터만 넘겨주기 때문에, id는 input이 아니다.
 그래서 input의 type중에 hidden이란 타입이 있는데, 눈에는 보이지 않으면서
 form 태그 안에 있으면 value의 값을 같이 넘겨줄 수 있게 된다.
- memberUpdate.do라는 요청을 받는 서블릿을 만들어보자.
2. 서블릿 페이지 만들기
@WebServlet("/memberUpdate.do")
public class MemberUpdateController extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1. 파라미터 수집(VO)
        request.setCharacterEncoding("utf-8");
        int number = Integer.parseInt(request.getParameter("number"));
        int age = Integer.parseInt(request.getParameter("age"));
        String email = request.getParameter("email");
        String phone = request.getParameter("phone");
        MemberVO vo = new MemberVO();
        vo.setNumber(number);
        vo.setAge(age);
        vo.setEmail(email);
        vo.setPhone(phone);
        MemberDAO dao = new MemberDAO();
        int success = dao.memberUpdate(vo);
        if(success > 0) {
            response.sendRedirect("/memberList.do");
        }
        else {
            throw new ServletException("not update");
        }
    }
}3. DAO 메서드 추가하기
public int memberUpdate(MemberVO vo) {
        String SQL = "update member set age=?, email=?, phone=? where number=?";
        getConnect();
        int success = -1;
        try {
            ps = conn.prepareStatement(SQL);
            // 4. 파라미터에 값 추가하기
            ps.setInt(1, vo.getAge());
            ps.setString(2, vo.getEmail());
            ps.setString(3, vo.getPhone());
            ps.setInt(4, vo.getNumber());
            success = ps.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            dbClose();
        }
        return success;
    }4. 실행해보기
- memberList.do 페이지로 가서, 아이디를 클릭하고 상세보기 페이지에서 input 데이터 값만 수정하고
 수정하기를 클릭하면 수정된 데이터가 잘 들어가고, 다시memberList.do페이지로 넘어오게 된다.
- 이제 돌아가기 버튼에만, memberList.do페이지로 돌아가게 만들어주면 된다.
- 돌아가기 버튼은, 버튼이 아닌 anchor 태그로, href 태그에 붙여주자.
- 이 시간에는 javascript를 사용하지 않고 고전적인 방법으로 만드는 강의이기 때문이다.
이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!
다음 글로 찾아오겠습니다!
반응형
    
    
    
  'web & develop > 웹 공부' 카테고리의 다른 글
| [MVC SPRING] 15. MVC02(JSP 구성요소 알아보기) (0) | 2022.04.30 | 
|---|---|
| [MVC SPRING] 14. MVC01(Servlet) 정리 및 Redirect 기법 ( 전화 돌리기 ) (0) | 2022.04.30 | 
| [MVC SPRING] 12. 회원상세보기 구현 (0) | 2022.04.30 | 
| [MVC SPRING] 11. 회원삭제하기(QueryString) (0) | 2022.04.30 | 
| [MVC SPRING] 10. 회원리스트 보기 (0) | 2022.04.30 | 
					댓글
						
					
					
					
				
			반응형
    
    
    
  
										공지사항
										
								
							
								
								
									최근에 올라온 글
									
							
								
								
									최근에 달린 댓글
									
							
								
								- Total
- Today
- Yesterday
									링크
									
							
								
								
									TAG
									
							
								
								- HTML
- Java
- Git
- JSP
- GitHub
- 안드로이드
- Spring
- VR
- 프리젠테이션 로직
- Servlet
- 게임프로그래밍
- Controller
- Base Of Coding
- spring boot
- MVC
- 유니티
- 프로그래밍
- c#
- Vuforia
- CSS
- 서블릿
- 유니티3D
- 유니티로 배우는 C#
- baseofcoding
- Next.js
- Unity
- 스프링
- 뷰포리아
- 비지니스 로직
- unity3d
| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
									글 보관함