✍
java,jdbc,servlet,jsp를 이용한 로그인/로그아웃 기능 구현이다.
SQL Developer 계정생성
DDL, DQL
JdbcTestServlet
✍
jdbc객체 생성
WEB-INF/lib/oracle8.jar
✍
DQL이라 executeQuery
코드의 간결함 때문에 예외처리는 모두 던짐
Resultset시 Date import는 sql처리 주의
WEB-INF/views/common/header.jsp
유효성 검사
✍
tabindex속성추가
중요 보안 POST방식
유효성검사
request.getContextPath() = /mvc/
controller/MemberLoginServlet
✍
로그인처리 서블릿처리
업무로직을 위한 구성하기- controller 역할의 servlet,service,dao
member/model/dto/Member.java
✍
기본생성자,parameter 생성자,(geter,seter),toString 생성
memberId, gender은 enum class를 사용한다
dto/MemberRole , dto/gender
✍
enum class는 코드의 가독성, 타입안정성, 타입 외 컴파일체크등 유용
jdbcTemplate.java
source Folder 생성 -> datasource.properties 추가
✍
buildpath(/WEB-INF/classes) 하위에 있는 datasource.properties의 절대경로
member/model/dao/MemberService
✍
DQL요청
1. Connection객체 생성
2. Dao요청 & Connectio 전달
3. Connection 반환(close)
member/model/dao/MemberDao
✍
DQL요청 - DAO
1. PreparedStatement 객체 생성 (sql전달) & 값대입
2. 쿼리실행 executeQuery - ResultSet 반환
3. ResultSet처리 - dto객체 변환
4. ResultSet, PreparedStatement객체 반환
findById = key , value = member-query.properties
✍
memberRole, gender는 String이 아님 ->
enum class으로 관리하는데 그냥 import할시 불러온 값이 String이 아니라 에러발생(eunm의 장점)
memberRole.valueOf , gender.valueOf로 문자열 그대로 반환
✍
finally절 import static 작성
contorller/MemberLoginServlet.java
유효성 검사 추가
✍
if문이 없다면 로그인 시도 후 매 상황마다 메세지가 출력된다.
client에서 server로 매 요청마다 새로운 request,reponse를 생성한다.
request속성을 session으로 바꿈
✍
Member loginMember생성
Ctrl+space = JSP import 단축키 참고
✍
logout table 생성
loginMember객체에 아무 값도 없다면(null) -> /mvc/, 만약 else이면 새로운 logout table이 나온다.
기존 request,response가 요청마다 초기화 되기 때문에 session속성으로 바꾸는 작업
header.jsp, MemberDao의 request를 session으로 바꿈
여기서 문제점은 로그인 시도 후 새로고침시 계속 로그인 요청이 들어간다.
contorller/MemberLoginServlet.java