・사용자의 리퀘스트가 들어올 때마다 객체를 하나씩 생성

・사용자가 많아서 리퀘스트가 엄청나게 들어온다면, 리퀘스트를 받아낸 객체들이 계속해서 남기때문에 처리속도가 갈 수록 느려짐



서브릿의 경우는

・요청이 들어오면 스레드 생성후 스레드로 처리

・또 요청이 들어오면 이미 만들어진 스레드 생성후 스레드로 처리

다른 cgi 언어에 비해 jvm의 스레드에서 처리하기 때문에 부하가 적음*







・생명주기란 ? 객체가 생성되어 사라지는 까지의 사이클

・서블릿의 응답속도가 빠른이유는 객체 생성 후 메모리 로딩 -> 요청시 기존 객체 재활용: 때문에 객체 생성 속도가 단축됨











・페이지 새로고침 키를 누르면 기존의 서블릿 객체를 재실행 시키는 것이기 때문에 init가 다시 실행 되지 않고, doget만 리퀘스트됨










・전처리 후처리는 어노테이션으로 호출되기 때문에 메소드명은 정해지지 않음

・init/destroy는 부모클래스를 오버라이드 하는 것이기 때문에 정해진 메서드명이 필요







[질문]

-스레드가 무너지

-왜 서블릿이 스레드때문에 빠른지

































・html에서 get을 리퀘스트 하는 방법 : 

1.<a>태그의 href프로퍼티 이용 : <a href="/HWorld">

2.html 주소창에 직접 페이지 요청 : http://localhost:8090/helloworld/HWorld








・html에서 post을 리퀘스트 하는 방법 : 

1.<input type="submit">









・톰캣 구동후 http://localhost:8090/helloworld/post.html 리퀘스트

톰캣 was에 의해 html이 자바로 인식되어 리퀘스트 인지

post <input>클릭시 <form action="PostMethod" method="post">에 의해http://localhost:8090/helloworld/PostMethod으로 맵핑. 이때 전송방식은 post

 http://localhost:8090/helloworld/PostMethod 리퀘스트

 http://localhost:8090/helloworld/PostMethod 리퀘스트에 대한 레스폰드(아래)






























・패키지 명이란, 파일패스로 현재의 dynamic web project가 c:/dev/helloworld 일 때, com.javalec.ex라는 패키지의 디렉토리는 c:/dev/helloworld/com/javalec/ex/HelloWorld.java가 된다.

・클래스명은 servlet의 이름을 의미한다.

・서블렛 클래스는 내장클래스로써 포함된 httpservlet 클래스를 슈퍼클래스로 상속받는다.



・url맵핑이란, 아래에서도 배우겠지만 디렉토리명으로 설정되어 있는 풀패스의 일부를 보안과 편리성을 위해서 간단히 바꾸는 것이다. 가령 c:/dev/helloworld/com/javalec/ex/HelloWorld 이라는 페이지를 /Hworld로 맵핑하면, http://locahost:8090/helloworld/Hworld로 접근할 수 있게 된다. 이를 url맵핑이라고한다.








・servlet-name : 임의의 이름으로 <serlet-class>와 <url-pattern>을 연결해주는 역할을 하는 변수이다. 아무거나 적어도 된다. 단 <serlet-class>의 servlet-name과 url-pattern>의 servlet-name는 동일 해야 연결자의 역할을 할 수 있다는 것만 기억하자.













-프로젝트 이름은  첫글자 소문자.

-반드시 마지막 단계에서 create web.xml을 클릭하기





-웹컨텐츠에 jsp html을넣름

-src에 자바랑 서블릿






・HTTP : 단순히 화면에 보여짐

  FTP : 파일을 전송함

  SMTP : 이메일을 전송함

  POP : 이메일을 받아냄















+ Recent posts