LeetCode - Best Time to Buy and Sell Stock
수업 시간에 배운 StringBuffer, StringBuilder
에 대해서 공부해보기
EL에서 가장 중요한 건 param(.이나 []로 사용), scope(내장객체 page,request,session,application 영역에 저장된 ...)
form에서 post,get으로 보내면 param으로 받는다
request.setAttribute~ 해서 보내면 requestScope. 해서 받는다
객체.메서드
데이터 전이
순수 JSP 코드와 비교하면 형변환이 해줄 필요도 없고 게터 안써도 된다!
쿠키, HTTP헤더, 컨텍스트 초기화
스크립틀릿의 단점 = HTML 태그와 잘 안붙는다! 그래서 <% 자바코드 %> HTML <% 자바코드 %> 이런식으로 사용하다보니 너무 불편했기 때문에 JSTL이 나옴!
처음에 그냥 5개를 전부 집어넣고 나중에 사용하지 않은(노란색 밑줄이 뜬다)만 지워주면 된다
Core 태그 (set(변수나 자바빈즈 생성할 때 사용), remove, if(else없음), choose(wher~otherwise), forEach, forTokens, import, url, catch...
requestScope.personVar1.name 형변환을 하지 않아도 자동으로 형변환해서 값을 가지고 온다
personVar1.age 이런식으로 선언했을 경우에 가장 작은 영역(Page)에서 age를 찾다가 없으면 request -> session -> application 이런식으로 자동으로 찾기 때문에 매우 편하다!!
c:if에는 else가 없이 true일 경우에만 값을 가지고 오기 때문에 choose를 이용해 else와 비슷하게 false 값을 찾아올 수 있다!
<c:when test=조건1>조건1에 만족하는 코드</c:when>
<c:when test=조건2>조건2에 만족하는 코드</c:when>
<c:otherwise>아무 조건도 만족하지 않는 코드</c:otherwise>
</c:choose>..
이런식으로 switch/ease/default와 비슷하지만 각각 c:when에서 조건을 비교한다는 점에서 if/else와 같은 구조라고 볼 수 있다
c:forEach begin="1" end="3" step="1" var="i"
1부터 시작해서 3까지 1씩 증가해서 그 값을 i에 넣어라~
DB에는 파일이 저장될 위치, 크기 등이 글짜로 저장이 되고 업도르한 파일은 따로 보관을 한다.
파입 업로드 (화면폼 -> DB Table -> DTO/DAO -> 연동하여 업로드 테스트)
화면폼 (method 속성은 반드시 post, enctype 속성은 multipart/form-data로, input 태그의 type 속성은 file로 지정한다)
StringBuffer, StringBuilder
간단하게 생각하면 글자를 누적 저장할 수 있는 것 (원래는 글자를 1글자, 1글자 저장하기 때문에 여러개의 객체가 만들어지는데 buffer를 사용하면 누적된 애들을 1개로 취급?)
많은 것을 배웠습니다, 감사합니다.