[JAVA 웹 개발기록]국비 76일차

:)·2022년 6월 16일
0



java,jdbc,servlet,jsp를 이용한 로그인/로그아웃 기능 구현이다.


SQL Developer 계정생성


DDL, DQL


JdbcTestServlet

jdbc객체 생성


WEB-INF/lib/oracle8.jar


JdbcTestServlet


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의 절대경로


resources/sql.member/member-query.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 작성


**session 변환 후 참고함** 원래 session이 아닌 request

contorller/MemberLoginServlet.java
유효성 검사 추가


header.jsp


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

0개의 댓글