ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ERMaster] shoppingmall - update
    WEB/ERMaster 2022. 9. 10. 12:20

    회원 정보 수정하기

    header.jsp에 정보수정 command 추가
    else if(command.equals("editForm")) ac=new EditFormAction();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class EditFormAction implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response) 
    			throws ServletException, IOException {
    
    		RequestDispatcher dp
    			=request.getRequestDispatcher("member/updateForm.jsp");
    		dp.forward(request,response);
    	}
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file="../header.jsp" %>
    <%@ include file="sub_image_menu.html" %>
    <article>
    <h2>Edit Profile</h2>
    <!-- 회원가입 폼과 같이 주소 검색 시 결과를 받기 위해 
         폼이름을 updateForm이 아니고 joinForm으로 함 -->
    <form method="post" name="joinForm">
    <input type="hidden" name="command" value="memberUpdate"/>
    	<fieldset>
    		<legend>Basic info</legend>
    <!-- id는 수정 대상이 아니면서 submit할 때 전송될 대상이므로
    	 input type="text"로 하되 
         readonly로 설정해서 수정을 금지시킴 -->
    		<label>User ID</label>
    			<input type="text" name="id" value="${loginUser.id}" 
    				readonly><br>
    		<label>Password</label>
    			<input type="password" name="pwd"><br>
    		<label>Retype Password</label>
    			<input type="password" name="pwdCheck"><br>
    		<label>Name</label>
    			<input type="text" name="name" 
    				value="${loginUser.name }"><br>
    		<label>E-Mail</label>
    			<input type="text" name="email" 
    				value="${loginUser.email }"><br>
    	</fieldset>
    	<fieldset>
    		<legend>Optional</legend>
    		<label>Zip Code</label>
    			<input type="text" name="zip_num" size="10"
    				value="${loginUser.zip_num }">
    			<input type="button" value="주소 찾기" class="dup" 
    				onclick="post_zip()"><br>
    		<label>Address</label>
    			<input type="text" name="address1" size="50"
    				value="${loginUser.address1 }"><br>
    		<label>&nbsp;</label>
    			<input type="text" name="address2" size="25"
    				value="${loginUser.address2}"><br>
    		<label>Phone Number</label>
    			<input type="text" name="phone" 
    				value="${loginUser.phone }"><br>
    	</fieldset><div class="clear"></div>
    	<div id="buttons">
    		<input type="button" value="정보수정" class="submit"
    			onclick="go_update();">
    		<input type="reset" value="취소" class="cancel">
    	</div>
    </form>
    </article>
    <%@include file="../footer.jsp" %>
     
    function go_update(){
    	if( document.joinForm.pwd.value==""){
    		alert("비밀번호을 입력해 주세요");		
    		document.joinForm.pwd.focus();		
    	}else if( document.joinForm.pwd.value!=
                  document.joinForm.pwdCheck.value){
    		alert("비밀번호가 일치하지 않습니다");		
    		document.joinForm.pwd.focus();		
    	}else if( document.joinForm.name.value==""){
    		alert("이름을 입력해 주세요");		
    		document.joinForm.name.focus();		
    	}else if( document.joinForm.email.value==""){
    		alert("이메일을 입력해 주세요");		
    		document.joinForm.email.focus();	
    	}else{ 
    		document.joinForm.action="shop.do";
    		document.joinForm.submit();
    	}
    }

     

    정보 수정 실행하기

    else if(command.equals("memberUpdate")) ac=new MemberUpdateAction();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.sam.shop.dao.MemberDao;
    import com.sam.shop.dto.MemberVO;
    
    public class MemberUpdateAction implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response) 
    			throws ServletException, IOException {
    		
    		MemberVO mvo=new MemberVO();
    		
    		mvo.setId(request.getParameter("id"));
    		mvo.setPwd(request.getParameter("pwd"));
    		mvo.setName(request.getParameter("name"));
    		mvo.setEmail(request.getParameter("email"));
    		mvo.setZip_num(request.getParameter("zip_num"));
    		mvo.setAddress1(request.getParameter("address1"));
    		mvo.setAddress2(request.getParameter("address2"));
    		mvo.setPhone(request.getParameter("phone"));
    		
    		MemberDao mdao=MemberDao.getInstance();
    		mdao.updateMember(mvo);
    		
    		HttpSession session = request.getSession();
    		// 정보가 수정되었으면 
            // 수정된 내용을 세션의 로그인 값을 변경함
    		session.setAttribute("loginUser",mvo);
    		RequestDispatcher rd 
    			=request.getRequestDispatcher("shop.do?command=index");
    		rd.forward(request, response);
    	}
    }

     

    MemberDao에 updateMember 생성

    public void updateMember(MemberVO mvo) {
    	String sql = "Update member set pwd=?, name=?, "
    			+"zip_num=?, address1=?, address2=?, "
    			+ "email=?, phone=? where id=?";
    	con = Dbman.getConnection();
    	try {
    		pstmt = con.prepareStatement(sql);
    		pstmt.setString(1, mvo.getPwd());
    		pstmt.setString(2, mvo.getName());
    		pstmt.setString(3, mvo.getZip_num());
    		pstmt.setString(4, mvo.getAddress1());
    		pstmt.setString(5, mvo.getAddress2());
    		pstmt.setString(6, mvo.getEmail());
    		pstmt.setString(7, mvo.getPhone());
    		pstmt.setString(8, mvo.getId());
    		pstmt.executeUpdate();
    	} catch (SQLException e) {	e.printStackTrace(); 		
    	} finally { 	Dbman.close(con, pstmt, rs); }	
    }

     

    댓글

Designed by Tistory.