728x90
로그인 기능은 웹 어플리케이션에서 자주 사용되는 핵심 기능중 하나이다.
Servlet 과 , MVC 패턴을 활용하여 간단한 로그인 구현을 알아보자.
HTML From 작성
사용자에게 sno 와 name 이라는 값을 받기 위한 폼을 작성한다.
action 과 method 속성에 유의하여 post 요청이 전송되도록 설정한다.
<form action="/web01/login" method="post">
<table>
<tr height="30"><td><label for="sno">SNO</label></td>
<td><input type="text" id="sno" name="sno"></td>
</tr>
<tr height="30"><td><label for="name">Name</label></td>
<td><input type="text" id="name" name="name"></td>
</tr>
<tr height="30"><td></td>
<td><input type="submit" value="로그인">
<input type="reset" value="취소">
</td>
</tr>
</table>
</form>
Servlet 구현
action 경로인 /web01/login 을 처리하는 서블릿을 구현한다.
서블릿 처리
- post 요청에 대한 한글처리 인코딩
- 서비스 처리 : 학생 정보 조회
- 결과 처리( 조회 성공시 로그인 처리 , 실패시 재로그인 유도)
- 한글처리 및 파라미터 처리
request.setCharacterEncoding("UTF-8");
HttpSession session = request.getSession(); // 세션 객체 생성
int sno = 0;
if (request.getParameter("sno") != null && request.getParameter("sno").length() > 0) {
sno = Integer.parseInt(request.getParameter("sno"));
}
String name = request.getParameter("name");
String uri = "home.html";
- 서비스 처리
StudentService service = new StudentService();
StudentDTO dto = service.selectOne(sno);
- 결과 처리
if (dto != null && dto.getName().equals(name)) {
System.out.println("sno와 name이 DB 내용과 일치.");
System.out.println(dto);
response.sendRedirect(uri);
} else {
System.out.println("sno와 name이 DB 내용이 일치하지 않거나 잘못된 내용.");
uri = "servletTestForm/flowEx04_LoginForm.jsp";
request.setAttribute("message", "로그인 실패. 다시 시도하세요.");
request.getRequestDispatcher(uri).forward(request, response);
}
'Developer > Spring eGov4.0 (Java11, Tomcat9)' 카테고리의 다른 글
Spring URI 빌더 활용하기 : 동적 URL 생성 (0) | 2024.11.04 |
---|---|
Servlet Scope와 세션 관리 이해하기: 객체 생성부터 소멸까지 (0) | 2024.11.04 |
Servlet 알아보기 3 ( 화면 간의 이동 처리 ) (0) | 2024.11.01 |
Servlet 알아보기 3 (lifecycle) (0) | 2024.11.01 |
Servlet 알아보기 2 (메서드 사용) (0) | 2024.11.01 |