Optional class
Optional - 값이 존재할 수도 있고 아닐 수도 있는 객체
java 8 에서 도입된 클래스
값이 있을 수도 없을 수도 있는 값을 나타내는 래퍼 클래스
Optional<String> optional = Optional.of("Hello, World!");
of => 주어진 값을 갖는 Optional 객체를 생성
주어진 값이 null 이면 'NullPointerException'
Optional<String> optional = Optiional.ofNullable(value);
ofNuillable => 값이 null 일 경우 비어있는 Optional 객체 생성
값이 있다면 주어진 값을 갖는 Optional 객체 생성
optional.isPresent() /// 값이 존재하는지 여부 확인
optional.ifPresent(value -> Sout(value)); // 값이 존재할 경우에만 동작 수행
Web - 정적인 페이지 ( html css js 이미지 등 ) 을 보여준다
Was - Web 의 기능도 모두 수행할 수 있으면서 애플리케이션 로직을 수행할 수 있다
Was 와 DB 만으로 웹 시스템을 구성할 수 있음
따라서
Web -> Was -> DB 로 구성하는 것이 일반적
https://mvnrepository.com/ - Central Repository
Central Repository 에 대부분의 library 가 있고 internet 연결을 통해서 local Repository 에 library 를 가져온다
local repository 는 .m2/repository 안에 사용하는 라이브러리들이 담기게 된다
-> 문제가 생길 경우 .m2 를 비우고 다시 설치하면 된다
archetype -> 프로젝트의 성격에 따라 이미 template 를 만들어 놨다..
application/x-www-form-urlencoded => 보통 post 방식으로 요청하면 이 방식으로 요청이 된
브라우저가 서버에 HTTP 메세지를 생성하여 전송
서블릿을 지원하는 WAS 에서는
초록색 칸을 제외한 모든 로직을 수행해줌
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletReqyuest request, HttpServletResponse response) {
// 로직
}
}
urlPatterns(/hello) 의 URL 이 호출되면 서블릿 코드가 실행된다
HTTP 요청을 사용할 수 있는 HttpServletRequsest
HTTP 응답을 사용할 수 있는 HttpServletResponse
helloServlet 안에 실질 로직이 포함되어있게 됨
tomcat 처럼 서블릿을 지원하는 WAS 를 서블릿 컨테이너 라고 함
서블릿 객체는 싱글톤으로 관리 ( 하나만 생성하고 모두 이 객체를 공유 )
-> request, response 객체는 요청마다 새로 만드는게 맞다
helloServlet 은 같은 로직이 들어있기 때문에 하나만 생성하고 재활용
공유 변수 사용 주의!!
서블릿 객체를 호출해준다
애플리케이션 코드를 순차적으로 실행하는 것을 스레드 라고 한다