2017년 9월 26일 화요일

세션과 쿠키의 차이점

Session과 Cookie

 웹사이트에서는 웹페이지에 특정 방문자가 머무르고 있는 동안에 그 방문자의 상태를 지속시키기 위해 쿠키와 세션을 이용한다.

Session
- 특정 웹사이트에서 사용자가 머무르는 기간 또는 한 명의 사용자의 한번의 방문을 의미한다.
- Session에 관련된 데이터는 Server에 저장된다.
- 웹 브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제시 사라진다.
- Cookie에 비해 보안성이 좋다.

Cookie
- 사용자 정보를 유지할 수 없다는 HTTP의 한계를 극복할 수 있는 방법
- 인터넷 웹 사이트의 방문 기록을 남겨 사용자와 웹 사이트 사이를 매개해 주는 정보이다.
- Cookie는 인터넷 사용자가 특정 웹서버에 접속할 때, 생성되는 개인 아이디와 비밀번호, 방문한 사이트의 정보를 담은 임시 파일로써,
  Server가 아닌 Client에 텍스트 파일로 저장되어 다음에 해당 웹서버를 찾을 경우 웹서버에서는 그가 누구인지 어떤 정보를 주로 찾았는지 등을 파악할 때 사용된다.
- Cookie는 Client PC에 저장되는 정보기 때문에, 다른 사용자에 의해서 임의로 변경이 가능하다.
(정보 유출 가능, Session보다 보안성이 낮은 이유)

Q. 보안성이 낮은 Cookie 대신 Session을 사용하면 되는데 안하는 이유?
A. 모든 정보를 Session에 저장하면 Server의 메모리를 과도하게 사용하게 되어 Server에 무리가 감


둘의 큰 차이점은 저장되는 위치?? 세션은 쿠키보다 느린속도..
출처: http://hahahoho5915.tistory.com/16 [넌 잘하고 있어]

참조
http://bllizz.tistory.com/15 

2017년 9월 12일 화요일

[rejected] master -> master (non-fast-forward)

git을쓰면서 이클립스에서 커밋앤 푸쉬를 하는데 저런 문구가 되면서 git저장소에 커밋이 되지 않는 현상이 발생하였다.

프로젝트 팀 메뉴에서 히스토리를 보니 아직 기록이 남아있는 것같아 'push branch master' 로 했더니 저번 내용까지 갱신되었다. 


git 어렵다 ㅠㅠ  소스날라갈까봐 무서움 ㅠㅠㅠ
공부 필요한듯..



--추가--
9/17
readme 파일을 git페이지에서 업데이트하고 커밋할때 발생하는듯.
내생각엔.. 변경된 내용이 이클립스에 적용이 안되서 그런듯??

2017년 9월 6일 수요일

REST란?

위키백과 설명...
REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 용어는 로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었다. 필딩은 HTTP의 주요 저자 중 한 사람이다. 이 개념은 네트워킹 문화에 널리 퍼졌다.
엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 '네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 간단한 의미로는, 웹 상의 자료를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다. 이 두 가지의 의미는 겹치는 부분과 충돌되는 부분이 있다. 필딩의 REST 아키텍처 형식을 따르면 HTTP나 WWW이 아닌 아주 커다란 소프트웨어 시스템을 설계하는 것도 가능하다. 또한, 리모트 프로시저 콜대신에 간단한 XML과 HTTP 인터페이스를 이용해 설계하는 것도 가능하다.
필딩의 REST 원리를 따르는 시스템은 종종 RESTful이란 용어로 지칭된다.

**********
 REST 방식의 웹 서비스를 쉽게 이해하기 위해서 어떻게 메시지를 주고 받게 되는지 동작 아키텍처를 살펴보도록 하겠습니다. 먼저 기존의 SOAP을 이용한 일반적인 웹 서비스 방식은 다음과 같습니다. 


[일반적인 웹 서비스]



반면에 REST는 URL을 요청하게 됩니다. 복잡한 SOAP 메시지를 호출하지 않아도 URL을 이용해서 데이터를 요청해야 한다는 것이죠.

[REST 방식의 웹 서비스]

위의 그림을 보면 12133이라는 URL을 통하여 데이터를 요청하고 있고 그 데이터는 XML 형식으로 반환하게 됩니다. 반환되는 XML 형식은 다음과 같습니다. 


웹에있는 자원들을 HTTP를 활용하여 전송하기 위한 아주 간단히 만든 인터페이스? 
>>유지보수 쉬움
 ex) board/list , board/write


특징
1. 클라이언트와 서버는 독립적이다.
2. 캐시 가능 
3. 계층화, 클라이언트는 중간 서버를 통해 연결한다.
4. 유니폼하다. URL로 지정한 리소스에 대해 조작이 통일, 한정적인 인터페이스로 수행한다.
5. 자체표현만으로 쉽게 이해 가능
6. 무상태?? 각 요청간 클라이언트의 객체는 서버에 저장 불가

장점
1. 사용이 쉬움, 간결함
2. 클라이언트와 서버가 명확히 분리
3. 원하는 데이터 표현을 사용할 수 있음

단점
1. 표준이 없음(보안또한?)
2. HTTP메소드의 한계?(HTTP 통신 모델에 의존?)
3. 둘 이상을 대상으로 상호작용하는 분산환경에는 유용하지 않음


*************************
어렵군!!



ajax 란?

Ajax(Asynchronous Javascript and Xml)

XMLHttpRequest를  사용하여  페이지 전체가 아닌 필요한 부분만 갱신할 수있도록 함.
json, xml, html 등 다양한 형식의 정보를 주고 받음 


장점
  • 페이지 이동없이 고속으로 화면을 전환할 수 있다.
  • 서버 처리를 기다리지 않고, 비동기 요청이 가능하다.
  • 수신하는 데이터 양을 줄일 수 있고, 클라이언트에게 처리를 위임할 수도 있다.
단점
  • Ajax를 쓸 수 없는 브라우저에 대한 문제가 있다.
  • HTTP 클라이언트의 기능이 한정되어 있다.
  • 페이지 이동없는 통신으로 인한 보안상의 문제
  • 지원하는 Charset이 한정되어 있다.
  • 스크립트로 작성되므로 디버깅이 용이하지 않다.
  • 요청을 남발하면 역으로 서버 부하가 늘 수 있음.
  • 동일-출처 정책으로 인해 다른 도메인과는 통신이 불가능하다.


기존방식과 AJAX의 차이
1) 기존방식
웹 브라우저가 웹 서버에 요청 전송
웹 서버는 JSP 등의 서버 어플리케이션을 사용해 사용자의 요청 처리 후 결과를 HTML로 생성해서 웹 브라우저에 전송
웹 브라우저는 응답으로 받은 HTML을 분석한 뒤 그 내용을 화면에 그림
- 결과적으로 웹 브라우저가 웹 서버와 통신을 하고 요청 결과는 HTML로 생성되고 사용 입장에서는 페이지 이동이 생함


2) AJAX방식
사용자가 이벤트를 발생 > 자바스크립트는 DOM을 사용해서 필요한 정보를 구한 뒤, XMLHttpRequest 객체를 통해서 웹 서버에 요청을 전달
웹 서버는 XMLHttpRequest로부터의 요청을 알맞게 처리후 결과를 XML이나 단순 Text을 생성해서 XMLHttpRequest에 전송
서버로부터 응답이 도착하면 XMLHttpRequest 객체는 자바스크립트에 도착 사실을 알고 자바스크립트는 응답 데이터와 DOM을 이용해 사용자 화면에 반영
결과적으로 사용자 입장에서는 페이지 이동이 발생되지 않고 페이지 내부 변화만 일어남


AJAX의 주요 구성 요소
- XMLHttprequest : 웹서버와 통신을 담당함. 사용자의 요청을 웹서버에 전송 및 웹서버로부터 받은 결과를 웹브라우저에 전달함
- DOM : 문서의 구조를 나타냄, 폼 등의 정보나 화면 구성을 조작할때 사용함
- CSS : 글자색,배경색,위치,투명도 등 UI관련 부분을 담당
- 자바스크립트 : 사용자가 마우스를 드래그하거나 버튼을 클릭하면 XMLHttpRequest객체를 사용해 웹서버에 요청을 전송함.
XMLHttpRequest 객체로부터 응답이 오면 DOM, CSS등을 사용해 화면을 조작함



차이 출처
출처: http://hieroglyph.tistory.com/13 [컴퓨터 이야기]




장단점 출처
https://ko.wikipedia.org/wiki/Ajax

2017년 8월 30일 수요일

cafe24 웹호스팅

카페24를 활용한 웹호스팅

가입 후 자신의 프로젝트에 맞는 설정

putty로 호스트 네임 포트번호 입력후 접속한다.

아이디와 비밀번호는 cafe24에서 설정한 아이디, 비밀번호로 접속(cafe24아이디,비밀번호랑 따로 설정했을 꺼임)

톰켓 시작 종료는 ./tomcat/bin/shutdown.sh ./tomcat/bin/startup.sh



파일 질라에 호스트, 사용자명, 비밀번호, 포트번로 입력 후 연결

wepapps 에 이클립스에서 export한 war파일을 넣고 

톰켓 재시작을 하면 완료 

//////////////////////
cafe24의 mysql에 쓰던 db넣기

워크벤치에서 export하면 sql형태로 다 나온다

cafe24 mysql 관리창에서 import 하여 하나하나 등록 하면 db옮기기 완료


///////////////////////
프로젝트경로나 파일 업로드의 경로 설정이 항상 문제다 ㅠㅠ
ROOT폴더에 하면 될것같긴한데 시도는 안해봤다


업로드(게시물, 프로필, 갤러리)는 경로는 이렇게 설정




JSP 서블릿 정리

유튜브 JSP 강의 정리

1~3강

웹서버: 클라이언트의 요청에 의해 제공해는 서버, 별도의 구현이 필요한 로직이 있을 경우 웹어플리케이션 서버에 요청

웹브라우저: 웹서버에 정보를 요청하고, 웹서버로부터 정보를 받는 매개체, 이때 http프로트콜을 사용

JSP
동적 웹어플리케이션/클라이언트의 요청에 동적으로 작동, 응답은html을 이용/ jsp는 서블릿으로 변환되어 실행/mvc패턴에선 view로 이용


m 모델(데이터구조)
v 뷰(jsp)
c 컨트롤러(모델과 뷰를 연결, 서블릿)
 3. MVC패턴(Model-View-Controller pattern)
 : MVC(Model-View-Controller) 구조는 전통적인 GUI(Graphic User interface) 기반의 어플리케이션을 구현하기 위한 디자인 패턴이다. MVC 구조는 사용자의 입력을 받아서, 그 입력 혹은 이벤트에 대한 처리를 하고, 그 결과를 다시 사용자에게 표시하기 위한 최적화된 설계를 제시한다.

 1) 뷰(View)는 화면에 내용을 표출하는 역할을 담당하는 것으로 데이터가 어떻게 생성되고, 어디서 왔는지에 전혀 관여하지 않는다. 단지 정보를 보여주는 역할만을 담당한다. JSP기반의 웹 어플리케이션에서는 JSP페이지가 뷰(View)에 해당한다.

 2) 모델(Model)은 로직을 가지는 부분으로 DB와의 연동을 통해서 데이터를 가져와 어떤 작업을 처리하거나, 처리한 작업의 결과를 데이터로서 DB에 저장하는 일을 처리한다. 모델(Model)은 어플리케이션의 수행에 필요한 데이터를 모델링하고 비즈니스 로직을 처리한다. 즉, 데이터를 생성하고 저장하고 처리하는 역할만을 담당한다. JSP기반의 웹 어플리케이션에서는 자바빈(JavaBean)이 모델(Model)에 해당한다.

 3) 컨트롤러(Controller)는 어플리케이션의 흐름을 제어하는 것으로 뷰(View)와 모델(Model)사이에서 이들의 흐름을 제어한다. 컨트롤러(Controller)는 사용자의 요청을 받아서 모델(Model)에 넘겨주고,  모델(Model)이 처리한 작업의 결과를 뷰(View)에 보내주는 역할을 한다. JSP기반의 웹 어플리케이션에서는 보통 서블릿(Servlet)을 컨트롤러(Controller)로 사용한다.


출처: http://dawnisthm.tistory.com/entry/MVC-패턴-구현이론 [패션과 IT]


jsp아키텍처
.jsp >> .java(톰캣에서해줌?) >> .class(컴파일/jvm을 위한)

4강

서블릿은 자바 파일
>>매핑과정

자바스레드이용하여 동작>>으로 인해 요청이 몰려도 서버의 부하가 적게걸림
컨트롤러로 이용됨
매핑은 간단히 말해서 닉네임 (닉네임을 정해서 주소에 매핑에 맞는값을 받으면 헬로월드서블릿에 접근)
매핑을 하는 이유는 맵핑안하면 길고, 보안에 노출되어있기 때문

서블릿태그 서블릿>>클래스를 서블릿네임으로 정해서 접근
서블릿매핑 >> 방금 정한 이름을 /hw 으로 접근하겠다 명시


어노테이션으로도 매핑을 할수 있음 @~~




5강 

서블릿클래스는 http서블릿 클래스를 상속 받음

서블릿(인터페이스) - genericservlet(abstract) - htppservlet

클라이언트 << 요청(클라이언트한테오는 정보[아이디 등 정보 보냄])/응답(디비에서 확인을해서 맞는지아는지 정보 보냄) >> was(웹어플리케이션서버)


get방식 post방식 (클라이언트에서 aws 요청을 하는데 html태그안에 메소드 방식에 따라 달라짐) : get방식으로 오면 doget방식 메소드 호출
post방식이면 dopost메소드 실행

get: url값에 정보를 실어서 전송되어 보안에 약함
post: 헤더를 이용해 정보가 전송되기 때문에 보안에 강함(사용자가 url에 표시된 정보를 볼수 없음)


6강 

클라이언트에서 서블릿요청이 들어오면 서버에서는 서블릿컨테이너를 만들고 요청이 있을때마다 스레드가 생성됨
웹브라우저> 웹서버 > 웹어플리케이션서버(aws) > 서블릿 컨테이너(스레드 생성, 서블릿 객체 생성)
서블릿 장점 -
리퀘스트(요청)를 처리할 객체가 생성  (다른건 요청이올때마다 객체를 생성함 요청이많이 들어오면 부하가 걸림)
서블릿은 jvm에 스레드가 하나 생성(여기서 요청처리) >>다른 cgi? 언어에 비해서 서버 부하가 적게 발생
[ CGI란 공통 게이트웨이 인터페이스(common gateway interface)의 약어로, 웹서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약들을 말한다.]

생명주기(라이플 사이클)
서블릿의 사용도가 높은 이유는 빠른 응답속도  //서블릿은 최초 요청시 객체가 만들어져 메모리에 로딩되고, 이후 요청시에는 기존 객체 재활용 >> 따라서 속도가 빠름
서블릿 객체생성 > init() > service(서비스를 통해 연결?? 검색해 볼것!),[doget,dopost] > destroy()

선처리, 후처리
init호출하기전에 선처리(@PostConstruct)  destroy 후에 후처리(@PreDestroy) 그냥 실행되는 시점 설명하는듯


7강

html form태그 : 서버쪽으로 정보를 전달할때 사용하는 태그
input태그 (ex text, password, submit, checkbox, radio, reset  등)

form태그: input태그들의 값을 서버로 전송하기 위한 정보를 담고있음
여기서 get이면 http://~~~:8080/hello/join?id="aa"&name="홍" //post는 ~~~join/

서블릿 파라미터
서블릿에서 httpservletrequest 객체를 이용해 파라미터값을 얻을 수 있음 ex) string id = request.getParameter("id");

한글처리
get방식( server.xml 수정 <Connector URIEncoding="EUC-KR" port="8181"~~
post방식 dopost에 request.setCharacterEncoding("EUC-KR);



8강

서블릿 초기화 파라미터:특정 서블릿이 생성될때 초기에 필요한 데이터 ( 경로, 아이디 정보 등) >초기화 파라미터> web.xml에 기술 > 서블릿파일에서는 servletconfig 클래스를 이용해 접근 or 서블릿파일에 직접 기술
web.xml ex)<init-param><param-name>~~</~></~>
>>서블릿에서 getinitparameter로 가져올수잇음

서블릿파일에 직접기술: @WebInitParam(name="id", value="abc"),@WebInitParam(name="pw", value="abc"),,,이런식으로


servletcontext 데이터 공유
여러서블릿에서 특정 데이터를 공유할 경우 context parameter를 이용해 web.xml에 기술을 하고 서블릿에서 공유하면서 사용 가능
<context-param><param-name><param-value></~></~></~>
>>서블릿에서 getServletContext().getInitParameter("id")

servletcontextlistener 웹어플리케이션 감시
웹어플리케이션(컴포넌트들을 묶어논 프로그램?)의 생명주기 감시하는 리스너
web.xml에 리스너등록 <listener><listener-class>com.jva~~.ad~</~></~>
리스너 클래스 따로 제작(아까한것보다더 더 먼저 실행, 나중에 실행 강의에선 순서설명함)

web.xml에 리스너등록안하고 클래기스 @WebListener 해도 되는듯


9강

jsp는 서블릿과 반대로 html코드에 자바 언어를 삽입하여 동적문서를 만듬
jsp태그종류
지시자<%@ %> : 페이지 속성
주석 <%-- --%>
선언 <%! %> : 변수, 메소드 선언
표현식 <%= %> :결과값 출력 (;이 붙지않음)
스크립트릿 <% %> java코드
액션 태그 <jsp:action> </jsp:action> : 자바빈 연결

jsp주석은 안보임..?

jsp동작원리
클라이언트가 웹브라우저로 dawd.jsp를 요청하게되면 jsp컨테이너가 jsp파일을 servlet파일(.java)로 뱐환됨
servlet파일(.java)은 컴파일 된 후 클래스 파일(.class)로 변환되고, 요청한 클라이언트한테 html파일 형태로 응답

jsp내부객체: (객체를생성하지않고 바로 사용할수있는 객체)
내부객체는 jsp컨테이너에 의해 servlet으로 변환될때 자동으로 객체가 생성
ex) request, response, out, page, config, session, exception 등


10강

스크립트릿, 선언, 표현식  >>스크립(scripe)
jsp문서안에 java문서언어를 넣기 위한 방식들 > 많이 쓰임
스크립트림(scriptlet) <% java코드 기술 %>: jsp페이지내에서 java언어를 사용하기 위한 요소 중 가장 많이 사용

선언(<%! java코드 기술 %>: jsp페이지 내에서 사용되는 변수 또는 메소드(전역의 의미)

표현식<%= java코드 기술 %>: jsp페이지 내에서 사용되는 변수의 값 또는 메소드 호출 결과값을 출력하기 위해 사용, string타입이며, ;를 사용불가


지시자<%@ %>: jsp페이지의 전체적인 속성을 지정할때 사용
 (page 해당 페이지의 전체적인 속성 [import/language 등등],
include 별도의 페이지를 현재 페이지에 삽입 [include file="dad.jsp"],
taglib 태그라이브러리의 태그 사용 [사용자가 만든 tag를 사용하기위해 사용, uri(라이브러리위치값) 및 prefix속성(태그를 가리키는 이름)이있음 )

주석
html<!-- -->
jsp<%-- --%>


11강

request객체의 이해: 웹브라우저를 통해 서버에 어떤 정보를 요청하는것
request객체관련 메소드 getContextPath() / getMethod() / getSession / getProtocol 등등
getParameter가 많이 쓰임
getParameter(String name): name에 해당하는 파라미터 값 구함
getParameterNames: 모든 파라미터 이름을 구함
getParameterValues(String name): name에 해당하는 파라미터값들을 구함

response객체의 이해: 웹브라우저의 요청에 응답하는것
response관련 메소드 getCharcterEncoding() / sendRedirect(URL) 등


12강 

액션태그 : jsp페이지 내에서 어떤 동작을 하도록 지시하는 태그 (페이지 이동, 페이지 include 등)
forward 현재 페이지에서 다른 특정페이지로 전환 <jsp:forward page="sss.jsp"/>

include 현재페이지에 다른 페이지 삽입 <jsp:include page="inda.jsp" flush="true" />

param forward 및 include 태그에 데이터 전달을 목적 <jsp:forward page="sss.jsp"><jsp:param name="id" value="aa"/></jsp:forward>

13강 

쿠키 : http프로토콜은 응답후 관계를 끊음, 연결이 끊겼을때 어떤 정보를 지속적으로 유지하기위한 수단 (클라이언트 측에 저장, 서버에 요청할때마다 쿠키의 속성값을 참조 또는 변경가능, 4kb용량, 300개까지 데이터 정보를 가질수 있음)

쿠키 문법: 쿠키 생성(쿠키 클래스) > 속성 설정(setter) > response객체에 쿠키 탑재
setMaxAge(), setpath() 등등...


14강

세션 : 쿠키와 마찬가지로 서버와의 관계를 유지하기 위한 수단 , 쿠키와 달리 클라이언트에 특정 위치에 저장되는 것이 아니라, 서버상에 객체로 존재 > 서버에서만 접근이 가능하여 보안이 좋고, 저장할 수 있는 데이터에 한계가 없음

세션 문법: 클라이언트 요청이 발생하면 자동생성: 클라이언트 요청 > 세션 자동 생성 > 세션 속성 설정
setAttribute(), getId() 등등

15강

예외페이지 : 예외발생시 예외페이지로 이동
페이지 지시자를 이용한 예외 페이지<%@ page errorPage ="errorPage.jsp"%>  >> errorPage.jsp: <%@ page isErrorPage="true"%>(예외페이지인 경우 true로 명시해줄것) <% response.setStatus(200);%><%= exception.getMeessage()%>

web.xml 파일로 예외처리  : <error-page><error-code>404</error-code><location>/error404.jsp</location></error-page> 추가

16강

자바 빈 : 반본적인 작업을 효율적으로 하기위해 사용, java언와의 데이터(속성)와 기능(메소드)로 이루어진 클래스. ex(도메인 부분 board, user 등)
빈 관련 액션 태그(useBean: 특정 빈을 사용한다고 명시 할때 <jsp:useBean id="student" class="com.javalec.ex.~~" scope="page" />
, setProperty: 데이터 값을 설장할때 <jsp:setProperty name="student" property="name" value="홍길동" />
, getProperty:데이터 값을 가져올때 <jsp:getProperty name:student property="name"/>
)


17강 ~19강

데이터 베이스
 dbms(database managerment system) 데이터베이스 관리 시스템  응용프로그램(웹어플리케이션jsp,java등등)  >> dbms >> DataBase
jdbc java프로그램에서 sql문을 실행하여 데이터를 관리하기 위한 java api
다양한 데이터베이스에 대해서 별도의 프로그램을 만들 필요 없이, 해당 데이터베이스의 jdbc를 이용하면 하나의 프로그램으로 데이터 베이스를관리
데이터베이스 연결 순서: jdbc 드라이버 로드 > 데이터베이스 연결 > sql문 실행 > 데이터베이스 연결 해제
statement > excuteQuery()  [select]/ excuteUpdate() [insert, delete, update 등]
resultset : excuteqeury 실행후 반환되는 레코드 셋

회원관리 실습


20강 

커넥션 풀
DAO: Data Access Object : 데이터베이스에 접속해 데이터 추가, 삭제, 수정 등의 작업을 하는 클래스
DTO: Data Transfer Object:  데이터를 관리하기위해 데이터의 클래스를 만들어 사용

DBCP(커넥션 풀) : 클라이언트에 다수의 요청이 발생할 겨우 데이터베이스에 부하가 발생하게 됩니다. 이러한 문제를 해결하기 위해 이용
preparedStatement객체를 이용해 쿼리 중복코드 줄임

21강 ~22강

회원인증 프로그램 실습 ,파일 업로드

23강

 EL
Expression Language : 표현식 또는 액션 태그를 대신해서 값을 표현하는 언어 &{}
<jsp:getProperty name="memeber" property="name"/> >>> &{member.name}

내장객체
pageScope: 페이지 객체를 참조하는 객체
requestScope :request 객체를 참조하는 객체
sessionScope: ~
applicationScope : ~
param:요청파라미터를 참조하는 객체
paramValues: 요청 파라미터(배열)을 참조하는 객체
initParam: 초기화 파라미터를 참조하는 객체
cookie: cookie객체를 참조하는 객체

24강 

JSTL(JSP Standard tag library)
JSTL에서는 다섯가지의 라이브러리를 제공합니다(core, XML Procession .등등...)
Core라이브러리: 기본적인 라이브러리로 출력, 제어문, 반복문 같은 기능 포함
<%@ taglib uri=http://java.sun.com/jsp/jstl/core prefix="c" %>

출력 <c:out>
변수 설정 <c:set>
변수 제거<c:remove>
예외처리<c:catch var="변수명">
if<c:if>
for <c:forEach>
페이지 이동 <c:redirect>
파라미터 전달 <c:param>


25강

 FrontController패턴 Command 패턴
디렉토리 패턴 > ~~~/hello
확장자 패턴 > ~~~.do

FrontController 패턴 : 다양한 요청을 한곳으로 집중시켜, 개발 . 유지보수에 효율성 극대화
Command : 요청을 서블릿이 직접하지않고 해당 클래스가 처리하도록 함

26강

 포워딩
RequestDispatcher 클래스: 서블릿 또는 jsp에서 요청을 받은 후 다른 컴포넌트로 요청을 위임
RequestDispatcher클래스(요청받은 요청객체를 위임하는 컴포넌트에 동일하게 전달),
HttpServletResponse클래스 (동일하게 요청을 위임하는 클래스 그러나 새로운 요청객체를 생성하는것이 차이점)

>>요청받은 값을 다른 곳에서 처리하도록 보내주는것???
다시 정리;;

27~30

 mvc게시판  

2017년 8월 23일 수요일

이클립스 GItHub 연동하기

git 개인 계정에 repository 생성

저장소 주소 복사 후 이클립스 git에서

next..next 

프로젝트 에서 share project



아까 git창에서 만들었던 저장소 선택(예시를 위해 저장소를 따로 안만들어서 이름이 다름)

완료!