package member.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import member.dto.MemberDTO;
import member.util.DatabaseUtility;
public class RegisterMemberServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 요청 파라미터 조회
request.setCharacterEncoding("utf-8"); //한글을 입력받기 위해서 필요한 메소드(한글처리)
response.setContentType("text/html;charset=utf-8");
String id = request.getParameter("id");
String password = request.getParameter("pwd");
String name = request.getParameter("name");
String regi_num = request.getParameter("regi_num");
int mileage = 1000;
//2. Business Logic 처리
ServletContext ctx = getServletContext();
String url = ctx.getInitParameter("url"); //<context-param>인 웹 어플리케이션의 초기화 파라미터 값을 가져온다.
String user = ctx.getInitParameter("user");
String pwd = ctx.getInitParameter("password");
Connection conn = null;
PreparedStatement pstmt = null;
String resUrl = null;
try {
//1. Connection
conn = DriverManager.getConnection(url, user, pwd);
//2. PreparedStatement
//3. SQL문 전송(insert)
String sql = "insert into member values(?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, password);
pstmt.setString(3, name);
pstmt.setString(4, regi_num);
pstmt.setInt(5, mileage);
pstmt.executeUpdate();
//response 객체는 html의 실행 결과를 웹브라우저로 전송하고자 할 때
//setContentType 메소드는 캐릭터의 인코딩을 지정할 때 사용
MemberDTO dto = new MemberDTO(id, password, name, regi_num, 1000);
request.setAttribute("dto", dto);
resUrl= "/res/register_success.jsp";
} catch (SQLException e) {
e.printStackTrace();
request.setAttribute("errorMessage", e.getMessage());
resUrl="/res/error.jsp";
} finally {
//4. close
DatabaseUtility.close(pstmt, conn);
}
RequestDispatcher rdp= request.getRequestDispatcher(resUrl);
rdp.forward(request, response);
}
}