웅진씽크빅 스타터스 부트캠프/교육일지

유데미 스타터스 취업 부트캠프 3기 - 백엔드 8주차 학습 일지

할루솔이 2023. 1. 15. 21:55
반응형

8주차 학습 내용 시작!!!!

 

 


 

 

jsp 액션태그

 

  1. jsp에서는 <% 자바문장; %> 태그에서 자바 문장 사용 가능
  2. 자바 객체 생성-조회 가능
    <%MemberDAO dao = new dao.메서드(dto);..%>
  3. jsp = 웹화면(html태그)+처리할 로직 구현은 JAVA
    웹디자이너와 협업 쉽게 하자 = 자바 로직을 제거하자!

액션태그: 태그이지만 실행 시 자바로 동작한다. 

 

<jsp:include page=”b.jsp” /> 다른 파일이 있다면 내 파일에 포함시킨다는 태그.
단, 동일 서버, 동일 컨텍스트(웹프로젝트)만 가능!
<jsp:forward page=”b.jsp”> 다른 파일로 이동하겠다는 태그

원래는 아래처럼 사용했는데 이제는 forward태그로 간단하게 사용 가능 RequestDispatcher rd = request.get…(”b.jsp”); rd.forward(request, response);
<jsp:useBean> 자바객체생성태그
id=”객체변수명” class=”패키지명.클래스명”
scope=”page(기본) | request | session | application”
=⇒
의미동일함.
request.setAttribute(
객체변수명”, 객체변수명);


1.
<jsp:userBean id=”a” class=”test.A” scope=”request” />
<jsp:include page=”b.jsp” />

=== >
2.
A a = new A();
request.setAttribute(a);
RequestDispatcher rd = …(”b.jsp”);
rd.include(request, response);


b.jsp
1. <jsp:useBean id=”a” class=”test.A” scope=”request” />
2. A a2 = (A)request.getAttribute(”a”); 
<jsp:setProperty> 자바객체setter메서드 호출 태그

property =”객체변수명” name=”useBean태그의id속성값
<jsp:getProperty> 자바객체getter메서드 호출 태그

property=”” name=””
<jsp:param > <jsp:param >는 단독으로 사용하지 않고
include/forward할때 내부에 포함하여 사용한다.

<jsp:include page=”b.jsp” >
      <jsp:param name=”” value=”문자열/정수/실수”>
</jsp:include>

 

include
<jsp:include page=”b.jsp” />

 

a.jsp를 요청해서 a.jsp실행됨.

include b.jsp니까 b.jsp로 넘어가서 값 가진 상태로 a.jsp로 넘어옴.

이 값들 모두 요청한 곳으로 전달.

1-2-3 문장 모두 수행된다.

**********forward와 다른 점! forward는 b.jsp로 가면 다시 돌아오지 않음!!!!!!!!!!!!

 

공통적으로 들어가야 하는 내용들(ex. 상단 로고, 하단 사이트 소개 등등) 따로 만들어서 include 해서 사용하면 편하다~

 

-경로-
<img src="../images/html5.jpg">  <!-- 상대경로 -->
<img src="<%=request.getContextPath()%>/images/html5.jpg">  <!-- 절대경로 -->

경로가 헷갈려서 다시 적어봤당

 

 

include 예제

저렇게 include page="bottom.jsp"해주면 loginform.jsp에는 bottom.jsp 내용이 같이 나타난다!

 

 

 

 

param

 

<jsp:include page="bottom.jsp">
   <jsp:param name="id" value="jsp" />
</jsp:include>

*param은 include나 forward 내부에서 사용해야 한다! 따로 작성했더니 오류 났음...ㅠ

 

<jsp:param ⇒ 전달했으니 읽을 때는 request.getParameter(”id”)해서 동일하게 읽어오기

 

param 예제

 

변수 전달은 jsp:param사용

객체 전달은 request.setAttrbute사용

 

 

 

forward

 

forward 예제

3; 문장은 수행되지 않는다!!!!!!!!!!!

이유는 1번 문장 수행 후 바로 b.jsp로 이동해서 2번 문장 수행했고

다시 a.jsp로 돌아가지 않아서 그렇다!!

1,2만 수행된다~~!

 

 

 

out.println("<h1>아이디 입력해주세요</h1>");

//원래는 <% % > 내부에 하는데 오타가 많아지니 out내장객체 사용해서 출력하기!!!!!!!

 

 

<jsp:forward page="<%=filename %>">
	<jsp:param name="uesrname" value="<%=URLEncoder.encode("홍길동") %>"/>
</jsp:forward>

value="<%=URLEncoder.encode("홍길동") %>"

다른 내용들은 웹에서 바로 입력해주기 때문에 한글이 깨지지 않음.

홍길동은 넘겨주는 내용이라 encode 해줘야 함.

저 내용을 받는 jsp에서는 Decode 해주기!!!!!!!!

<% String username = URLDecoder.decode(request.getParameter("username")); %>

 

 

userBean & set/getProperty

 

<jsp:setProperty property="id" name="dto2" value="<%=request.getParameter("id") %>" />

<jsp:setProperty property="id" name="dto2" param="id"/>

 

value로 넣어줄 때는 request 해서 id값 불러와야 하고

param으로 넣어줄 때는 넘겨준 name 그대로 넣어주면 됨.

 

 

 

el태그

 

${!empty param.name? param.name.length(): "없다" }

 

!empty param.name : param.name이 비어있지 않으면~이라는 뜻.

 

1. ${} 안에는 한 문장만 들어가야 한다.

2. el태그에서 null은 출력되지 않고 무시된다. 공백으로 취급되기 때문

3. ${"안녕"+="하세요"}

    el태그에서 문자열 결합은 +가 아니라 +=을 사용해야 한다.

 

 

 

${내장객체}

 

JSP <% %> EL ${ }
request

request.setAttribute(”o”,객체);
request.getAttribute(”o”);
requestScope

requestScope.o
(객체명만 붙여주면 됨)
session sessionScope
application applicationScope
request.getParameter(”id”) param

param.id
request.getParameterValues(”hobby”)
⇒String[] 리턴함.

배열은 parameter가 아니라 parameterValues로 넘기니까!!
paramValues

paramValues.hobby

${ i=100} ${i} ⇒ 출력값: 100

단, <%=i %>는 오류. i는 el태그 변수이기때문!!!

pageContext(=현재 페이지의 환경정보)

 

 

 

jsp에서 정의하고 el에서 값 출력하는 법

 

xxxx**.setAttribute("a", "내용 공유");

xxxx**.getAttribute("a")

 

사용하면 el에서도 값 출력 가능!!

 

코드

 

실행 화면

 

어제 배운 내용 기억해보기~!
forward를 만들어두면 출력 문장은 모두 무시된다!!!!

 

 

 

코드

 

실행 화면

pageContext는 현재 페이지 내에서만 공유함.

그래서 null!!!!!

 

scope2,jsp 바로 들어가면 session, application만 출력 가능

 

엣지브라우저에서 열면 application만 출력 가능

(session은 브라우저 닫히면 끝나고 applicaion은 다른 브라우저도 가능하니까~!)

 

 

 

모든 변수를 a로 초기화했을때 jsp태그는 괜찮지만 el태그는 인식불가!

 

 

 

 

el a 출력(현재 페이지의 jsp태그 전달 값) = ${pageScope.a }<br>
el a 출력(이동 전의 jsp태그 전달 값) = ${requestScope.a }<br>
el a 출력(세션 전달 값) = ${sessionScope.a }<br>
el a 출력(어플리케이션 전달 값) = ${applicationScope.a }<br><br>

 

실행 화면

el태그 안에 pageScope, requestScope 등등 작성하면 위 화면 확인 가능하다.

el 전달 변수 해석 출력 순위

1. pageScope

2. requestScope

3. sessionScope

4. applicationScope

 

 

jsp bean
  1. 자바 클래스 하나를 bean이라고 함. <jsp:useBean.../>
  2. 기본생성자가 있어야 하고 패키지가 있어야 한다.
  3. setter/getter 메서드가 필요하다.

<jsp:useBean setProperty..> =⇒ 자바 객체를 하나 생성해서 값을 저장하라는 의미

 

 

 

JSTL

JSTL태그를 사용하려면 

https://mvnrepository.com 클릭!

 

1. jstl 검색 후 클릭

 

2. 링크 클릭

 

3.  jstl 찾아서 클릭

 

4.  1.2/ 클릭

 

5.  다운로드~~!

 

6. 프로젝트 WEB-INF 밑에 넣어두기 

7. 태그를 사용할때는 위에 적어주기

c는 jstl태그 쓰겠다는 의미!!

 

 

 

core태그

 

 

 

 

 

 

 

 

(접은 글이 뭔지 한 번 써보고 싶어서 core태그 내용을 작성해보았다..후후)

 

 

!!!자주 사용하는 코드 고정시키기!!!


클릭해서 고정시켜두고 싶은 코드를 작성해두면 된다.
저장 후 새로 파일 하나 열어서 확인해보면 적용된 것 확인 가능!!!

 

c set태그 변수는 el태그 사용해야한다!!!!!

<c:set var="colors" value="<%=array %>"/> <c:forEach items="${colos}">

 

 

 

AJAX

클라이언트와 서버 간 xml이나 json 데이터를 주고받는 기술을 의미한다.

 

“비동기적”통신 자바스크립트 기술 - 통신결과 xml

“비동기적”통신 자바스크립트 기술 - 통신결과 JSON

 

json특징

1. “변수명”: “값” 형태로 작성한다.

2. html태그 들어가면 안됨. 

자바스크립트에서 객체를 만들 수 있는 형태 JSON형태
💡 1. var emp = {
             name: 이사원,
             salary: 23400.99,
             print: function(){},
             title: “사원”
          }
💡 1. var emp = {
             name”: “이사원”,
             salary”: 23400.99,
             title”: “사원”
          }

 JSON형태
변수만 남기고
실행되는 내용(메서드)은 제외
하기(print:function(){}같은 경우)


 

 


 

 

이번 주에 배운 내용들은 재밌었다!!!

근데 헷갈리는건 여전히 동일...ㅠㅠ

스프링...어떻게 하면 더 잘하게 될 수 있는거지?!

 

 

 

 

——————————————————————————

* 유데미 바로가기 : https://bit.ly/3V220ri

* STARTERS 취업 부트캠프 공식 블로그 보러가기 : https://blog.naver.com/udemy-wjtb

본 후기는 유데미-웅진씽크빅 취업 부트캠프 3기 백엔드 과정 학습 일지 리뷰로 작성되었습니다.

반응형