<Context path="/edu" docBase="c:/edu" debug="0" reloadable="true" />
WAS는 Client의 request로 url을 받는다, 따라서 url요청에 대한 servlet class를 매핑시켜주는 작업이 필요하다.(web.xml 밑에 해당 코드 추가)
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet</url-pattern>
</servlet-mapping>
<!-- http://217.0.0.1:8080/edu/FirstServlet -->
WAS의 webapp root classpath는 C:\edu\WEB-INF\classes이다.
Servlet Container는 각 Servlet class들이 어떤 method를 가지는지 알 수 없기에 정해진 method를 사용해야한다.
또한 Servlet class들은 WAS라는 하나의 process 안에 thread단위로 실행된다.
init()
Servlet class를 생성하고 초기화 하는 역할을 수행한다.
다른 request가 동일한 Servlet class를 사용하면 다시 init()을 호출하는것이 아닌 기존에 생성된 Servlet class를 사용한다
service()
service()를 통해 request 요청에 대한 처리 로직을 수행한다, overriding하지 않아도 servletContainer가 자동으로 실행하며
doGet(), doPost()를 내부적으로 실행한다
destroy()
destory()는 변경, 반납할 자원이 있을때 실행되며 thread 단위로 실행된 Servlet을 종료한다.
http://localhost:8080/edu/testServlet
개발시 위 처럼 경로를 명시하면 ip에 종속적인 개발을 해야한다
edu/testServlet
위 경로로도 변경이 가능하지만 아직 폴더에 종속적인 개발을 해야한다
./testServlet
-위 경로로 작성하면 경로에 종속되지 않는 개발이 가능하다.(web.xml의 설정을 통해 위 경로가 가능)
request.setCharacterEncoding("EUC_KR");
setCharacterEncoding method를 통해 Http Request의 Body의 한글화 문제를 해결 할 수 있다.
해당 메서드는 Body부분까지만 적용되기에 Http Header의 start line에 적용하기 위해서는 Tomcat Home의 Server.xml에 아래와 같이 추가하면
Header에도 적용이 가능하다.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"/>
root tag markup language에서 등장하는 첫번째 태그(html일 경우 이 root tag)
servlet directory, web app, servlet context 웹개발의 표준화된 폴더구조를 지칭하는 용어들
xml(EXtensible Markup Language)