ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JSTL] 로그인, 회원가입, 로그아웃
    WEB/JSTL 2022. 9. 9. 20:28

    sql로 회원 정보 입력

    create table member(
    	name varchar2(30),
    	userid varchar2(30),
    	pwd varchar2(30),
    	email varchar2(30),
    	phone varchar2(30),
    	admin number(1) default 0, --0: 일반 사용자, 1:관리자
    	primary key(userid)
    );
    insert into member values('이소미','somi','1234','gmd@anver.com',
    '010-1234-1234',0);
    insert into member values('하상오','sang12','1234','h12@naver.com',
    '010-5555-6666',0);
    insert into member values('김윤승','light','1234','yoon1@daum.net',
    '010-9999-1111',0);
    update member set admin=1 where userid='somi';
     

     
    회원가입 시 필요한 변수 Dto 생성
    package com.jstl.dto;
    
    public class MemberDto {
    	private String name;
    	private String userid;
    	private String pwd;
    	private String email;
    	private String phone;
    	private int admin;
    	
    	public void setAdmin(int admin) {
    		this.admin = admin;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getUserid() {
    		return userid;
    	}
    	public void setUserid(String userid) {
    		this.userid = userid;
    	}
    	public String getPwd() {
    		return pwd;
    	}
    	public void setPwd(String pwd) {
    		this.pwd = pwd;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	public String getPhone() {
    		return phone;
    	}
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    	public int getAdmin() {
    		return admin;
    	}
    }
     
     

    로그인 시작 화면

    1. 주소창 외부로 노출되지 않게 LoginForm 불러오기

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>index.jsp</title>
    </head>
    <body>
    <%
    // response.sendRedirect("member/loginForm.jsp");
    response.sendRedirect("login.do");
    // Servlet을 거쳐서 forwarding된 페이지는 외부로 노출되지 않음
    %>
    </body>
    </html>
     

    2. Servlet 생성

     
    package com.jstl.member;
    
    import java.io.IOException;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.jstl.dao.MemberDao;
    import com.jstl.dto.MemberDto;
    
    @WebServlet("/login.do")
    public class LoginServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
        public LoginServlet() {
            super();
        }
    	protected void doGet(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, 
    			IOException {
    		// get으로 호출됐을 때 실행
    		String url="member/loginForm.jsp";
    		HttpSession session=request.getSession();
    		if(session.getAttribute("loginUser")!=null) {
    			//만약 현재 누군가 로그인해 있다면
    			url="main.do";
    		}
    		RequestDispatcher rd
    			=request.getRequestDispatcher("member/loginForm.jsp");
    		rd.forward(request, response);
    	}
    	
    	protected void doPost(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException,
    			IOException {
    		// post로 호출됐을 때 실행
    		request.setCharacterEncoding("UTF-8");
    		
    		// 전달된 아이디 비번 변수에 저장
    		String userid=request.getParameter("userid");
    		String pwd=request.getParameter("pwd");
    		// 전달된 userid로 member 테이블에서 회원을 검색하고, 
    		// 검색결과에 따라 pwd와 비교해서 정상 로그인 여부를 결정함
    		
    		// 로그인이 실패했을 때를 대비해서 포워딩할 경로를 먼저 설정함
    		String url="member/loginForm.jsp";
    		
    		// Dao의 회원검색 메서드를 호출하기 위해서 객체를 생성함
    		MemberDao mdao=MemberDao.getInstance();
    		
    		// 전달된 userid를 전달인수로 하는 
    		// getMember() 메서드를 호출해서 
    		// 해당 회원의 정보를 dto에 담아서 리턴받음
    		MemberDto mdto=mdao.getMember(userid);
    		
    		if(mdto==null) {// 아이디가 없음
    			request.setAttribute("message", "아이디가 없습니다");
    		} else if(mdto.getPwd()==null) {// 저장된 비밀번호가 null
    			request.setAttribute("message", 
    					"(시스템 오류1)관리자에게 문의");
    		} else if(!mdto.getPwd().equals(pwd)) {// 비밀번호 틀림
    			request.setAttribute("message", "비밀번호가 틀립니다");
    		} else if(mdto.getPwd().equals(pwd)) {// 정상 로그인
    			url="main.do";
    			// 로그인한 사람의 정보(mdto)를 session에 저장함.
    			// session은 각 페이지에 있는 request 객체에서 
                // 얻어 쓸 수 있는데 jsp 페이지에서는 
                // 그 페이지가 갖고 있는 request 안의 session을 
    			// 별도 작업없이 그냥 사용해도 되지만,  
    			// servlet에서는 request를 전달인수로 받아서 
    			// 매개변수에 저장된 형태로 쓰기 때문에 
                // 별도로 추출하는 동작이 필요함
    			HttpSession session=request.getSession();
    			// request와 response는 jsp 페이지에 있는 객체임
    			session.setAttribute("loginUser", mdto);
    		} else {// 어쨌든 로그인 실패
    			request.setAttribute("message",
    					"(시스템 오류2)관리자에게 문의");
    		}
    		RequestDispatcher dp
    		=request.getRequestDispatcher(url);
    		dp.forward(request, response);
    	}
    }
     

    3) loginForm

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>loginForm.jsp</title>
    <script type="text/javascript">
    	function loginCheck(){
    		if(document.frm.userid.value==""){
    			alert("아이디를 입력하세요");
    			document.frm.userid.focus();
    			return false;
    		}
    		if(document.frm.pwd.value==""){
    			alert("비밀번호를 입력하세요");
    			document.frm.pwd.focus();
    			return false;
    		}
    		return true;
    	}
    </script>
    </head>
    <body>
    <form action="login.do" method="post" name="frm">
    	<table>
    		<tr><td> 아이디 </td><td>
    			<input type="text" name="userid"></td></tr>
    		<tr><td> 암&nbsp;&nbsp;&nbsp;호 </td><td>
    			<input type="password" name="pwd"></td></tr>
    		<tr><td colspan="2" align="center">
    			<input type="submit" value="로그인" 
    				onClick="return loginCheck()">
    <!-- 
    loginCheck() 함수의 리턴값을 다시 form에 리턴해줌으로써 폼의 동작이 
    action에 지정한 곳으로 계속 이동을 진행할지 아니면 멈출지를 결정함 
    -->
    			<input type="reset" value="취소">
    			<input type="button" value="회원가입"
    				onClick="location.href='join.do'">
    		</td></tr>
    		<tr><td colspan="2">${message}</td></tr>
    	</table>
    </form>
    </body>
    </html>
    주소창에 login.do만 표시됨
     
     
    비밀번호를 입력하지 않고 로그인 했을 경우

     

    로그인 후

    1. MainServlet

    package com.jstl.member;
    
    import java.io.IOException;
    import java.util.ArrayList;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.jstl.dao.MemberDao;
    import com.jstl.dto.MemberDto;
    
    @WebServlet("/main.do")
    public class MainServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
        public MainServlet() {
            super();
        }
    
    	protected void doGet(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, 
    	        IOException {
    		request.setCharacterEncoding("UTF-8");
    		String url="member/main.jsp"; // 원래 목적지
    		
    		HttpSession session=request.getSession();
    		// 로그인한 사람이 없으면 목적지를 loginForm으로 변경
    		if(session.getAttribute("loginUser")==null) 
    			url="member/loginForm.jsp";
    		
    		// 전체 회원의 정보를 조회해서 ArrayList에 담고,
            // main.jsp로 포워딩함
    		MemberDao mdao=MemberDao.getInstance();
    		ArrayList<MemberDto> list=mdao.selectMember();
    		
    		// 조회된 내용을 request에 저장
    		request.setAttribute("mList", list);
    		RequestDispatcher dp=request.getRequestDispatcher(url);
    		dp.forward(request, response);
    	}
    
    	protected void doPost(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, 
    	        IOException {
    		doGet(request, response);
    	}
    }
    
     

    2. main.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>main.jsp</title>
    <script type="text/javascript">
    function withDrawConfirm(){
    	var bool=confirm('정말로 탈퇴하시겠습니까?');
    	if(bool){
    		location.href="withdraw.do?userid="+"${loginUser.userid}";
    	} else{
    		return;
    	}
    }
    </script>
    </head>
    <body>
    <table>
    	<tr><td>${loginUser.name}(${loginUser.userid })님이 로그인하셨습니다
    	</td></tr>
    	<tr><td> email: ${loginUser.email }</td></tr>
    	<tr><td> 전화번호: ${loginUser.phone }</td></tr>
    	<tr><td><input type="button" value="로그아웃" 
    		onClick="location.href='logout.do'"/>
    	<!-- 
    	어떤 태그이든 onClick 속성을 써서 페이지 이동을 하고자 한다면
    	위와 같이 location.href를 onClick 속성에 지정해서 이동.
    	onClick  속성에는 페이지 이동 기능이 없기 때문에 페이지만 쓴다고
    	이동하지 않으니 반드시 location.href로 페이지를 지정해야함. 
    	-->
    		<input type="button" value="회원정보변경" 
    		onClick="location.href='update.do?userid=${loginUser.userid }'">
    		<%--EL 또는 JSP의 <%=%>는 문자 데이터들 사이에 껴들어서 
    				조합문자데이터 구성 가능함  --%> 
    		<input type="button" value="회원 탈퇴" 
    			onClick="withDrawConfirm();">
    		</td></tr>
    </table>
    <br><br>
    <c:if test="${loginUser.admin==1 }">
    	<table width="800" bgcolor="black" cellspacing="1">
    		<tr bgcolor="white"><th>아이디</th><th>이름</th>
    										<th>전화번호</th><th>이메일</th>
    										<th>등급</th><th>등급변경</th>
    		</tr>
    		<c:forEach items="${mList}" var="member">
    			<tr bgcolor="white" align="center">
    				<td>${member.userid}</td><td>${member.name}</td>
    				<td>${member.phone}</td><td>${member.email}</td>
    				<td>
    					<c:choose>
    						<c:when test="${member.admin==1}">관리자
    						</c:when>
    						<c:otherwise>일반사용자</c:otherwise>
    					</c:choose>
    				</td>
    				<td>
    					<c:choose>
    						<c:when test="${member.admin==1}">
    							<input type="button" value="일반으로 변경"
    							onClick="location.href='editadmin.do?userid=${member.userid }&admin=${member.admin }'"/>
    						</c:when>
    						<c:otherwise>
    							<input type="button" value="관리자로 변경"
    							onClick="location.href='editadmin.do?userid=${member.userid }&admin=${member.admin }'"/>
    						</c:otherwise>
    					</c:choose>
    				</td>
    			</tr>
    		</c:forEach>
    	</table>
    </c:if>
    </body>
    </html>
     

     

    회원가입 하기

    1. JoinServlet

    package com.jstl.member;
    
    import java.io.IOException;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.jstl.dao.MemberDao;
    import com.jstl.dto.MemberDto;
    
    @WebServlet("/join.do")
    public class JoinServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
        public JoinServlet() {
            super();
        }
    
    	protected void doGet(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, 
    	       IOException {
    		RequestDispatcher dp
    			=request.getRequestDispatcher("member/joinForm.jsp");
    		dp.forward(request, response);
    	}
    
    	protected void doPost(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, 
    	        IOException {
    		request.setCharacterEncoding("UTF-8");
    		
    		MemberDao mdao=MemberDao.getInstance();
    		MemberDto mdto=new MemberDto();
    		
    		mdto.setName(request.getParameter("name"));
    		mdto.setUserid(request.getParameter("userid"));
    		mdto.setPwd(request.getParameter("pwd"));
    		mdto.setEmail(request.getParameter("email"));
    		mdto.setPhone(request.getParameter("phone"));
    		mdto.setAdmin(Integer.parseInt(request.getParameter("admin")));
    		
    		int result=mdao.insertMember(mdto);
    		
    		if(result==1) request.setAttribute("message", "회원가입 완료");
    		else request.setAttribute("message", "회원가입 실패");
    		
    		RequestDispatcher dp
    			=request.getRequestDispatcher("member/loginForm.jsp");
    		dp.forward(request, response);
    
    	}
    
    }
    
     

    2. joinForm

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>joinForm.jsp</title>
    <script type="text/javascript">
    	function idCheck(){
    		if(document.frm.userid.value==''){
    			alert('아이디를 먼저 입력하고 중복체크 버튼을 클릭하세요');
    			document.frm.userid.focus();
    			return;
    		}
    		var inputid=document.frm.userid.value;
    		// 사용하고자 입력한 아이디를 변수에 저장
    		var opt=
    			'toolbar=no, menubar=no, scrollbars=yes, width=800px, height=200px';
    		window.open('idcheck.do?userid='+inputid, 'id-check', opt);
    // 서블릿을 호출하고 포웓딩된 페이지가 팝업창에 열릴 예정임. 
    // 그래서 첫번째 요소는 서블릿의 urlmapping 이름을 씀.
    // 서블릿 호출 시 파라미터를 위와 같이 호출되는 주소 뒤에 
    // ? 함께 전달 가능
    	}
    	function joinCheck(){
    		if(document.frm.name.value==''){
    			alert('이름은 필수입력 사항입니다');
    			document.frm.name.focus();
    			return false;
    		}
    		if(document.frm.userid.value.length==0){
    			alert('아이디는 필수입력 사항입니다');
    			document.frm.userid.focus();
    			return false;
    		}
    		if(document.frm.pwd.value.length==0){
    			alert('비밀번호는 필수입력 사항입니다');
    			document.frm.pwd.focus();
    			return false;
    		}
    		if(document.frm.userid.value!=document.frm.reid.value){
    			alert("아이디 중복체크를 하지 않았습니다");
    			document.frm.userid.focus();
    			return false;
    		}
    		if(document.frm.pwd.value!=document.frm.pwd_check.value){
    			alert("비밀번호 확인이 일치하지 않습니다");
    			document.frm.pwd.focus();
    			return false;
    		}
    		return true;
    	}
    </script>
    </head>
    <body>
    
    <h2>회원 가입</h2> '*' 표시 항목은 필수 입력 항목입니다.
    <form action="join.do" method="post" name="frm">
    	<table>
    		<tr><td>이름</td><td><input type="text" name="name"
    			size="20">&nbsp;*</td></tr>
    		<tr><td>아이디</td><td><input type="text" name="userid"
    			size="20">&nbsp;*
    			<input type="button" value="중복 체크" 
                     onClick="idCheck();"/>
    			<input type="hidden" name="reid" value=""></td>
    <!-- 
    reid 태그는 아이디 중복체크 후 사용 가능한 아이디라면 
    사용할 아이디를 reid 태그의 value값으로 저장함. 
    그리고 나중에 현재 아이디가 입력된 userid와 
    reid 값이 같은 값인지 보고 중복 체크 여부를 체크함 
    -->	
    		</tr>
    		<tr><td>비밀번호</td><td><input type="password" name="pwd"
    			size="20">&nbsp;*</td></tr>
    		<tr><td>비밀번호  확인</td>
    			<td><input type="password" name="pwd_check"
    			size="20">&nbsp;*</td></tr>
    		<tr><td>이메일</td><td><input type="text" name="email"
    			size="20">&nbsp;</td></tr>
    		<tr><td>전화번호</td><td><input type="text" name="phone"
    			size="20">&nbsp;</td></tr>
    		<tr><td>등급</td><td><input type="radio" name="admin"
    			value="0" checked="checked">일반회원&nbsp;
    			<input type="radio" name="admin" value="1">관리자</td>
            </tr>
    		<tr><td colspan="2" align="center">
    			<input type="submit" value="회원 가입" 
    						onClick="return joinCheck()"/>
    			<input type="reset" value="취소"></td></tr>
    	</table>
    </form>
    
    </body>
    </html>

     

    ID 중복 체크

    1. idCheckServlet

    package com.jstl.member;
    
    import java.io.IOException;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.jstl.dao.MemberDao;
    
    @WebServlet("/idcheck.do")
    public class idCheckServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
        public idCheckServlet() {
            super();
        }
    
    	protected void doGet(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, 
    	        IOException {
    		request.setCharacterEncoding("UTF-8");
    		
    		String userid=request.getParameter("userid");
    		MemberDao mdao=MemberDao.getInstance();
    		int result=mdao.confirmId(userid); 
    		// userid가 사용가능한지 판단하는 메서드 호출
    		
    		//MemberDto mdto=mdao.getMember(userid);
    		//if(mdto==null) result=-1;
    		//else result=1;
    		
    		// 리턴값이 1이면 사용불가능(다른 사람이 사용중)
            // -1이면 사용 가능
    		request.setAttribute("result", result);
    		request.setAttribute("userid", userid); 
    		// 중복체크한 아이디와 결과를 모두 리퀘스트에 담음
    		
    		RequestDispatcher dp=
    				request.getRequestDispatcher("member/idcheck.jsp");
    		dp.forward(request, response);
    	}
    
    	protected void doPost(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, 
    			IOException {
    		doGet(request, response);
    	}
    }
     

    2. idcheckform

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>idcheck.jsp</title>
    <script type="text/javascript">
    	function idok(id){
    		opener.document.frm.userid.value=id;
    		opener.document.frm.reid.value=id;
    		self.close();
    	}
    </script>
    </head>
    <body>
    <c:choose>
    	<c:when test="${result==1}">
    		${userid}는 이미 사용 중인 아이디입니다.
    	<script type="text/javascript">
    	// 팝업창을 오픈한 주체: opener
    		opener.document.frm.userid.value='';
    		opener.document.frm.reid.value='';
    	</script>
    	</c:when>
    	<c:otherwise>
    		${userid}는 사용 가능한 아이디입니다. 
    		<input type="button" value="사용할게요" 
    			onClick="idok('${userid}');">
    	</c:otherwise>
    </c:choose>
    <br><br>
    
    <!-- 첫번째 체크한 아이디 말고 다른 아이디를 체크하기 위한 폼 -->
    <form action="idcheck.do" method="get" name="frm">
    	아이디: <input type="text" name="userid" value="${userid}">
    	<input type="submit" value="중복 체크">
    </form>
    </body>
    </html>
     
     

     

    Dao

    package com.jstl.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    
    import com.jstl.dto.MemberDto;
    
    public class MemberDao {
    	
    	private MemberDao() {}
    	private static MemberDao itc=new MemberDao();
    	public static MemberDao getInstance() {return itc;}
    	
    	// 연결 객체 준비
    	Connection con=null;
    	PreparedStatement pstmt=null;
    	ResultSet rs=null;
    	
    	// 연결 정보
    	String driver="oracle.jdbc.OracleDriver";
    	String url="jdbc:oracle:thin:@localhost:1521:xe";
    	String id="scott";
    	String pwd= "tiger";
    	
    	private Connection getConnection() {
    		Connection con=null;
    		try{
    			Class.forName(driver);
    			con=DriverManager.getConnection(url, id, pwd);
    		} catch(ClassNotFoundException e){e.printStackTrace();
    		} catch(SQLException e){e.printStackTrace();} 
    		return con;
    	}
    	private void close() {
    		try{
    			if(rs!=null) rs.close();
    			if(pstmt!=null) pstmt.close();
    			if(con!=null) con.close();
    		} catch(Exception e){e.printStackTrace();}
    	}
    	
    	public MemberDto getMember(String userid) {
    		MemberDto mdto=null;
    		// 전달된 userid로 검색해서 해당 회원이 없으면 
            // null 값이 리턴되도록 
    		// dto의 초기값 null임
    		// 조회된 회원이 있는 경우에 new MemberDto가 실행되어 
    		// 회원의 각 정보를 저장하고 리턴함
    		String sql="select*from member where userid=?";
    		con=getConnection();
    		try {
    			pstmt=con.prepareStatement(sql);
    			pstmt.setString(1, userid);
    			rs=pstmt.executeQuery();
    			if(rs.next()) {
    				mdto=new MemberDto();
    				mdto.setName(rs.getString("name"));
    				mdto.setUserid(rs.getString("userid"));
    				mdto.setPwd(rs.getString("pwd"));
    				mdto.setEmail(rs.getString("email"));
    				mdto.setPhone(rs.getString("phone"));
    				mdto.setAdmin(rs.getInt("admin"));
    			}
    		} catch(SQLException e){e.printStackTrace();
    		} finally{close();}  
    		return mdto;
    	}
    	
    	public ArrayList<MemberDto> selectMember() {
    		ArrayList<MemberDto> list=new ArrayList<>();
    		String sql="select*from member";
    		con=getConnection();
    		try {
    			pstmt=con.prepareStatement(sql);
    			rs=pstmt.executeQuery();
    			while(rs.next()) {
    				MemberDto mdto=new MemberDto();
    				mdto.setUserid(rs.getString("userid"));
    				mdto.setName(rs.getString("name"));
    				mdto.setPwd(rs.getString("pwd"));
    				mdto.setPhone(rs.getString("phone"));
    				mdto.setEmail(rs.getString("email"));
    				mdto.setAdmin(rs.getInt("admin"));
    				list.add(mdto); 
                    // 검색결과를 리스트에 레코드단위로 추가
    			}
    		} catch(SQLException e){e.printStackTrace();
    		} finally{close();}  
    		return list;
    	}
    	
    	public int confirmId(String userid) {
    		int result=-1;
    		String sql="select*from member where userid=?";
    		con=getConnection();
    		try {
    			pstmt=con.prepareStatement(sql);
    			pstmt.setString(1,userid);
    			rs=pstmt.executeQuery();
    			if(rs.next()) result=1;
    		} catch (SQLException e) { e.printStackTrace();
    		} finally {close();}
    		return result;
    	}
    	
    	public int insertMember(MemberDto mdto) {
    		int result=0;
    	  String sql="insert into member(userid,name,pwd,phone,email,"
    				+ "admin) values(?,?,?,?,?,?)";
    		con=getConnection();
    		try {
    			pstmt=con.prepareStatement(sql);
    			pstmt.setString(1,mdto.getUserid());
    			pstmt.setString(2,mdto.getName());
    			pstmt.setString(3,mdto.getPwd());
    			pstmt.setString(4,mdto.getPhone());
    			pstmt.setString(5,mdto.getEmail());
    			pstmt.setInt(6,mdto.getAdmin());
    			
    			result=pstmt.executeUpdate();
    		} catch (SQLException e) { e.printStackTrace();
    		} finally {close();}
    		return result;
    	}
    }
     
     

     

    로그아웃(LogoutServlet)

    package com.jstl.member;
    
    import java.io.IOException;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    @WebServlet("/logout.do")
    public class LogoutServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
        public LogoutServlet() {
            super();
        }
    
    	protected void doGet(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException,
                IOException {
    		HttpSession session=request.getSession();
    		session.invalidate();
    		
    		RequestDispatcher rd=request.getRequestDispatcher("member/loginForm.jsp");
    		rd.forward(request, response);
    	}
    	
    	protected void doPost(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, 
    	        IOException {
    		doGet(request, response);
    	}
    }

     

    댓글

Designed by Tistory.