springboot 수업일지

8일차 로그인,로그아웃form / jstl넣기(taglib)

wannabe 2021. 6. 30. 17:13

login 은 원래 select이라서 get방식인데,,, 중요한 정보가 들어가므로 post로!!! 기억하자

 

get으로 하든, post로 하든 다 노출된다. 

worldwide web에서 흘러가는 모든 데이터는 다 훔칠수 있다.

www는 모든 사람들이 접근할 수 있는 데이터

그런데 왜 post사용?

우리는 https 통신을 쓴다! s는  secure의 약자! 모든 데이터를  암호화해서 던진다

출발지부터 목적지까지 데이터가 암호화되어서 전달되는 것! http의  body data를 암호화 해줌 

서버에 도착하면? 이 암호화된 정보를 복구할 수 있는,, 목적지의 서버 개발자를 신뢰할 수  없다. 

그래서 https서버를 신뢰할 수 있는 큰 업체에게 맡긴다. 데이터를  암호화하고  복구할 수 있는 회사를 따로 둔다.  

이를  secure서버를 통해서 정보가 보내진다.

자체적으로 https서버를 구축하는 사람은 거의 없다. 

DNS란 무엇입니까?

DNS 또는 Domain Name System은 사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환합니다. 

https://aws.amazon.com/ko/route53/what-is-dns/

 

DNS란 무엇입니까? – DNS 소개 - AWS

12개월 동안 AWS 프리 티어에 액세스하여 연중무휴 24시간 고객 서비스, 지원 포럼 등을 비롯한 AWS Basic Support 기능을 사용해 보십시오. 현재 Amazon Route 53은 AWS 프리 티어에서 제공되지 않는다는 점

aws.amazon.com

**도메인 서버!

 

required="required" 이렇게 작성하면? 안적으면 submit이 안된다!

input태그는 /로 마지막에 꼭 닫는다!

 

userController에서 로그인 함수 만들기

 

사용자경험을 ux라고 한다.

**로그인 폼 

1) 경고창이 없음

2) 아이디 지워지는게 너무 마음에 안든다

3) 글쓰기, 회원정보변경, 로그아웃

 

 

 

3)번부터 해보자!!

header.jsp에서 jstl로 작성할 예정

아래 라이브러리 사용

https://daesuni.github.io/jstl/

 

JSTL의 기본 개념과 사용방법 정리

1. JSTL이란?

daesuni.github.io

<c:if> 는  else가 없다!!!

<c:forEach> 는 for문!!

 

<% %>이런거는  톰켓이 해석한다.

톰켓이  jstl은 아직  해석을  하지는 않는다. 그래서 이 페이지를  읽는애한테 jstl해석하라고 알려야한다 

위 블로그에 보면,

또는

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

=>prefix="c"  

    html5에서는  <c:forEach></c:forEach> 이렇게하면? 이제 div로 인식함

    이제 브라우저가 해석하는게 아니라, 톰켓이 해석하게 됨!

 

jstl표현식으로 코드 작성!

로그인 안했고 인증을 안한 사람이 들어가는 시스템 관련은??? auth파일로!!! 

<!-- 로그인이 안 된 사용자라면?? 즉, empty 는? null이거나, 공백(비어있는 객체)이면! -->
<!-- ${empty sessionScope.principal} EL표현식! -->

 

web패키지에 PostController 클래스도 만들어두자

결과 페이지는 다음과 같다

 

 

3)번 로그아웃!! 세션을 날린다.

 

String Contant ful?????

메모리에 가나다 를 저장하고 싶다면?

s=가나다

*주소 

*는? 포인터라고 한다. 해당 주소에 가나다 저장해놓자

s는  reference를 찾아갔다가  그 주소로 찾아가는  2번 찾아감

s=s+"라";

라고 하면???? 

주소값이 1번이었다면? 주소값이 2번으로 바뀌고 

2번에 가나다라 로 저장된다. 가나다라를 저장하는 공간이 하나더  생성된다. 이런게 String Contant ful

 

=> StringBuilder 타입

차곡차곡 한글자씩 쌓아둔다. 새로운 글자가 추가되면? 그 위에 하나 더쌓으면 된다.

 

즉!! 문자열을 더해서 사용할때는 String을  쓰지 말고(데이터가 중복 저장되어서) StringBuilder로 사용한다

util패키지에 Script클래스 만들어서 함수 선언해서 반복 사용!

************과제******************

update 하려면??/ update하고  session값을 바꿔야한다.

 

*** db type 확인해보자

varchar는 메모리 공간 효율을 극대화시킨다!!!

넣은 글의 길이만큼 공간 할당해서 저장해준다!

https://power-overwhelming.tistory.com/38

 

[DB/mysql] MySQL(MariaDB) 데이터 타입

MySQL (MariaDB) 데이터 타입( Data Type ) 문자형 (String Type) CHAR(n) : 고정길이 데이터 타입 (최대 255byte) - 지정된 길이보다 짧은 데이터 입력시 나머지 공간이 공백(Null)으로 채워짐 CHAR(0) 은 NULL..

power-overwhelming.tistory.com