접기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd "> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 로그인 폼<br> <% String errorMessage = (String)request.getAttribute("error_message"); if(errorMessage!=null){ %> <font color="red" size="2"><%=errorMessage %></font> <% } %> <form action="/member_servlet/login" method="post"> ID : <input type="text" name="id" size="10"><br> PWD : <input type="password" name="password" size="10" maxlength="10"><br> <input type="submit" value="로그인"> </form> <form action="/member_servlet/logout" method="post"> <input type="submit" value="로그아웃"> </form> </body> </html>
접기
접기
package member.servlet;
import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; 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 javax.servlet.http.HttpSession;
import member.dto.MemberDTO; import member.util.DatabaseUtility;
public class LoginServlet 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 { request.setCharacterEncoding("UTF-8"); String id = request.getParameter("id"); String password = request.getParameter("password"); ServletContext ctx = getServletContext(); String url = ctx.getInitParameter("url"); String user = ctx.getInitParameter("user"); String pwd = ctx.getInitParameter("password"); Connection conn = null; PreparedStatement pstmt = null; ResultSet rset = null; String resUrl = null; try { conn = DriverManager.getConnection(url, user, pwd); String sql = "select id, password, name, register_number, mileage from member where id = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, id); rset = pstmt.executeQuery(); if(rset.next()) { String logPass = rset.getString(2); if(password.equals(logPass)) { String s_name = rset.getString(3); String s_register = rset.getString(4); int s_mileage = rset.getInt(5); MemberDTO dto = new MemberDTO(id, logPass, s_name, s_register, s_mileage); HttpSession session = request.getSession(); session.setAttribute("dto", dto); response.sendRedirect("/member_servlet/res/login_success.jsp"); } else { request.setAttribute("error_message", "비밀번호가 일치하지 않습니다. 확인해주세요."); resUrl = "/login_form.jsp"; } } else { request.setAttribute("error_message", "아이디가 일치하지 않습니다. 확인해주세요."); resUrl = "/login_form.jsp"; } } catch (SQLException e) { e.printStackTrace(); request.setAttribute("errorMessage", e.getMessage()); resUrl="/res/error.jsp"; } finally { DatabaseUtility.close(rset, pstmt, conn); } if(resUrl !=null) { RequestDispatcher rdp = request.getRequestDispatcher(resUrl); rdp.forward(request, response); } }
}
접기
접기
< %@page import="member.dto.MemberDTO"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd "> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% MemberDTO dto = (MemberDTO)session.getAttribute("dto"); %>
<%=dto.getId() %>님 로그인하셨습니다.<br> <a href="/member_servlet/logout">로그아웃</a> </body> </html>
접기
접기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd "> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% String errorMessage = (String)request.getAttribute("errorMessage"); %> 실행 도중 오류가 발생했습니다.<br> 오류 내용<%= errorMessage %> <p> <a href='/member_servlet/index.html'>메인페이지로 이동</a> </p> </body> </html>
접기