Spring
in Web Dev on Java Spring
java api
서버 개발
- Framework : 개발을 표준화시킬 수 있다. (프로그램의 유지 보수가 쉬워진다 , 개발이 편해진다.)
- 전자정부 프레임워크 표준
웹서버 프로그램 :
Client Server
사용자 – request –> 서버
<– response –>
1) Spring MVC Project:
package 명을 3단계로 주어야 함.
2) 프로젝트 명 facet에서 java버전 바꿔
3) WAS 설정 (tomcat)
jsp : java server page : 클라이언트에 보여줄 페이지를 서버쪽에서 만드
html + java의 로직을 넣은 것.
동적으로 생성도니 페이지 (logic 평가-> html의 텍스트로 변환)
jasper라는 클래스가 해석하고 위를 해줌.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page session="false" %> 지시자.
- home.jsp => home.java => home.class => (html)같이 변환 => 소켓을 통해 통신
- 컨트롤러를 만드는 것이 가장 처음 작업 (.java 파일) : 사용자로부터 요청이 들어오면 요청을 받는 클래스 : Controller 라고 부른다. @Controller 애노테이션이 있어야 콘트롤러다!
Spring
DI(Dependency Injection) : container => DI, Life Cycle 관리
느슨한 결합 (결합을 강하지 않게 하는 것이 중요) (class a가 바뀌면 그걸 사용하느 ㄴb가 바뀌고 … 이렇게 연쇄적으로 바뀐다.)
- Friend f = new Friend(); –>결합을 강하게 하는 것이다.
환경설정 방법 : 크게 세가지 maven, java configuration 로 직접, annotation @
느슨한 결합
1) class보다 interface를 사용하는 것이 좋다.
2) 코드 내에서 객체를 생성하는 행위를 지양하는게 좋다.
3) 트랜잭션 관리 중요하다.
class Myclass {
//이렇게 선언만 해놓고, 외부에서 데이터를 받는 것이 좋다.
class MyClass{ Friend f; public MyClass(Friend f){ this.f = f; //스프링이 객체를 생성해 가지고 있어서 요청이 들어오면 던져준다. } }
}
새 프로젝트 만들었으면
1) java version 을 설정해야한다. (faucet 이랑
pom.xml에서 java version 고쳐줌)
spring framework 에서는 4.3.6 로 바꿔준다.
2) 환경설정
pom.xml : Maven 으로 dependencies를 관리하는 파일
C:\Users\21500.m2\repository\org\springframework\spring-context
여기에 있다.
web.xml
servelet- context.xml
root-context.xml
tomcat 바로 뒷단에 dispatcherServelet.java가 있다. 이것은 모든 요청을 받는 문지기 역할을 한다. 그리고 이사람이 뭘 요청했냐에 따라서 controller 쪽에 옮긴다.
“send1?username=홍길동&userage=34”
// 요청 같은 거
client 가 서버쪽으로 데이터를 보낼때는 parameter를 통해서 데이터를 보낸다.
서버쪽에서 클라이언트 쪽으로 데이터를 보낼 때는 model이라는 객체에 넣어서 보내면 된다.
model이 클래스의 객체를 보내게 해준다. key 와 value의 값으로 넣으면 된다.
model.addAttribute(“”,””)
방명록 짜기
요청의 종류
/ => 첫 요청 (index.jsp)
list => 글 목록 :
write => 글 작성 폼을 줘라 (get으로 요청) –> 데이터가 넘어갈 게 ㅂㄹ 없어서 그냥 get으로 요청
write => 글을 올려줘라 (post로 요청) –> 데이터가 넘어갈게 많아서
write 함수 이름은 같지만, 방식이 다르므로 다른 것으로 인식한다.
jsp 에서 들어온 데이터, tomcat이 먼저 받고, 이걸 spring 으로 넘기면서 controller로 넘기는데, 같은 이름이 없으면 그 객체 안의 setter 같은이름 찾아봐서 넣는다.그래서 그 객체의 setter가 자동으로 호출이 된다.
원래 response 에 담아서 응답을 보냈는데, spring 측에서 보안상 문제가 있는 것 같다고 model 객체를 만들어 준것이다.
model.addAttribute(“key”,value);
===
오라클이랑 스프링이랑 연결하기 위해서 주소가 필요하다.
네트워크 상에서 데이터 주고받고 하려면 주소 기본적으로 세개가 필요하다.
불변의 주소 : 컴터에 네트웍 카드라는게 나와있다. MAC Address
ipconfig -all (dos 명령어)
여기에 물리적 주소에 나와있다. 이게 컴퓨터 네트워크 카드의 하드웨어적 주소.
1.
IP 주소 : 소프트웨어적인 주소 (IPv4 : 255.255.255.255), IPv6
127.0.0.1 == localhost (도메인)
포트번호 : (1 ~ 65535)
http 는 80 포트를 쓴다.
우리 톰캣은 http://localhost:8089 일케 쓰자나 http 는 굳이 포트 번호 ㅇ나 붙여도 80포트를 쓰는 것이다.
tomcat => server.xml에 가면, connector 그기에 정보가 있다. port 번호가 적혀있다.
8080은 다른 프로그램이 가동되어서 안됨.. 배포할 때 포트를 바꿔준다.
모든 객체는 사용하려면 new를 해야한다.!!
@Controller ==> Spring 이 알아서 객체 생성해줌!! ==> 약결합이 가능