** 데이터 삽입
** 파일 업로드
** 회원가입 요청 디버깅
1. 자바스크립트 코드에 에러가 있는지 확인
2. UserController 클래스에서 요청을 제대로 처리하는지 확인
3. UserServiceImpl 클래스에서 요청을 제대로 처리하는지 확인
4. UserController 클래스에 register 요청을 POST 방식으로 전송했을 대 처리할 코드를 doGet 메소드에 추가
5. registerresult.jsp 파일을 만들고 출력하는 코드를 작성
6. register.jsp 파일에서 회원가입 버튼을 누르면 회원 가입 요청을 하고 그 결과를 가지고 다른 작업을 수행할 수 있도록 하는 코드를 작성
7. UserController 상단에 파일이 업로드 될 디렉토리를 설정
** 비밀번호 암호화
1. 암호화를 위한 라이브러리(jBCrypt)를 WEB-INF/lib 디렉토리에 복사한다.
2. UserServiceImpl 클래스에서 userPassword 저장하는 부분을 변경
** 데이터 암호화
** 암호화
** form의 Data를 ajax로 전송
※ 데이터 삽입
- 삽입요청 -> Controller -> ServiceImpl -> DAO -> Repository -> DAO -> ServiceImpl -> Controller -> View
- 웹에서는 요청을 ajax로 한다.
※ 파일 업로드
- 요청을 처리하는 Servlet 클래스 상단에 아래 어노테이션을 추가
@MultipartConfig(location="파일을 업로드할 디렉토리 절대경로로 작성")
- 요청을 처리하는 서비스 클래스에 작성한다.
- 파라미터를 읽을 때 getParameter 대신에 getPart("파라미터 이름")을 이용해서 Part 객체를 생성한다.
- Part 객체의 getHeader("content-dispotision")을 호출해서 업로드된 파일명을 찾아야 한다.
- 메소드를 호출하면 form-data;파라미터이름;파일명 형태로 리턴된다.
- File 객체를 만들고 Part 객체의 write 메소드를 이용해서 업로드를 수행한다.
- 파일을 하나의 디렉토리에 전부 업로드하려면 파일이름을 유일무이하게 만들어야 한다.
- UUID 클래스의 randomUUID 메소드를 호출해서 랜덤한 파일명을 만든다.
※ 회원가입 요청 디버깅
1. 자바스크립트 코드에 에러가 있는지 확인
2. UserController 클래스에서 요청을 제대로 처리하는지 확인
- 콘솔에 출력
3. UserService 인터페이스에 회원가입 처리를 위한 메소드를 선언 및 요청 처리 확인
3. UserServiceImpl 클래스에서 요청을 제대로 처리하는지 확인
4. UserController 클래스에 register 요청을 POST 방식으로 전송했을 때 처리할 코드를 doGet 메소드에 추가
5. registerresult.jsp 파일을 만들고 출력하는 코드를 작성
6. register.jsp 파일에서 회원가입 버튼을 누르면 회원 가입 요청을 하고 그 결과를 가지고 다른 작업을 수행할 수 있도록 하는 코드를 작성
7. UserController 상단에 파일이 업로드 될 디렉토리를 설정
※ 비밀번호 암호화
1. 암호화를 위한 라이브러리(jBCrypt)를 WEB-INF/lib 디렉토리에 복사한다.
2. UserServiceImpl 클래스에서 userPassword 저장하는 부분을 변경
※ 데이터 암호화
- 최근에는 개인 정보를 함부로 노출하면 안된다.
- 데이터를 저장할 때 바로 알아볼 수 없도록 저장하는 것을 권장한다.
- 암호화를 해서 복호화가 가능하도록 저장할 수 있고 암호화를 해서 복호화는 안되고 비교만 할 수 있도록 하는 방법도 있다.
- 비밀번호는 뒤의 방법을 선택하고 일반 데이터는 앞의 방법을 선택
- jBCrypt : 복호화가 불가능하도록 해주는 라이브러리이다.
- Bcrypt.hashpw(문자열, BCrypt.gensalt()) : 메소드를 호출하면 암호화된 문자열을 리턴한다.
- BCrypt.checkpw(원본문자열, 암호화된 문자열) : 2개가 일치하면 true 일치하지 않으면 false를 리턴한다.
※ 암호화
- 암호화와 복호화가 가능하도록 하는 경우
- 복호화는 불가능하고 비교만 가능하도록 하는 경우
※ form의 Data를 ajax로 전송
var 폼데이터변수명 = new FormData(document.getElementById("폼의 아이디");
send(폼데이터변수명);
'안드로이드&IOS 앱 개발자 양성' 카테고리의 다른 글
안드로이드&iOS 앱 개발자 양성(59일차) (0) | 2020.06.30 |
---|---|
안드로이드&iOS 앱 개발자 양성(58일차) - 로그인 처리, 요청 처리 디버깅, 오라클 & MySQL & MongoDB (0) | 2020.06.29 |
안드로이드&iOS 앱 개발자 양성(55~6일차) - ajax와 REST API Server 구축 및 암호화, 더보기 구현, ajax 처리, 회원 가입과 로그인 (0) | 2020.06.24 |
안드로이드&iOS 앱 개발자 양성(53~4일차) - 데이터베이스 연동, Connnection Pool, 나누어서 읽기 (0) | 2020.06.22 |
안드로이드&iOS 앱 개발자 양성(52일차) - HttpServlet, Model MVC 구조의 프로젝트 생성, Filter (0) | 2020.06.19 |