* 서블릿 매핑 - <servlet-mapping>


- client의 요청 url과 그 요청에 일할 서블릿 객체를 연결하는 설정
- 구문
<servlet-mappting>
    <servlet-name>이름</servlet-name>일할 서블릿 객체의 이름
    <url-pattern>패턴</url-pattern> 클라이언트가 요청할 url 패턴
</servlet-mapping>

- url-pattern의 세가지 방법

1. 이름까지 정확하게 일치하도록 설정
<url-pattern>/[경로]/이름</url-pattern>
2. 디렉토리까지 일치하도록 설정
<url-pattern>/[경로]/*</url-pattern>
3. 확장자만 일차하도록 설정
<url-pattern>*.확장자</url-pattern>

1. ex : /hello/helloservlet
이렇게 요청을 하면 브라우저에 url-pattern이 구문 그대로 요청을 해야한다.

2. ex : /hello/*

이렇게 요청을 하면 브라우저에
          /hello/helloservlet
          /hello/a
          /hello/b
이렇게 /hello/~다음에 머가 오던지 요청이 된다.

만약 /* url패턴을 요청하게 되면 어떤 요청이 들어가던지 간에 다 실행이 된다.

3. ex : *.do

 /hello/helloservlet.do
 /hello/helloservlet/aaaaa.do
마지막 확장자에 .do만 들어가면 다 호출이 되어 진다.

주의 : 1.2.번은 맨 앞에 / 가 무조건 들어가야 하고 3.번은 /가 들어가면 안된다.

* <url-pattern>의 /는 application의 Root경로를 말한다.

 

* 만약 1.번과3.번을 동시에 지정해 주면 1.번 디렉토리 경로가 우선적으로 실행된다.

Posted by 조은성
,

* jsp 개발환경

- 개발환경 eclipse   --------------->실행환경
                              배포(deplay)      (Tomcat : Webapps(톰캣이 어플리케이션을 관리하는 디렉토리))

java Resources
   - src
       - .java(서블릿)

WebContent
    - html, jsp (정적인 것).
    - WEB INF
         - web.xml (-> 설정파일)
         - lib 

* Path 반드시 외워라.(아래 있는 경로와 web.xml에 대한 것이 제일 중요)

Webapplication(myweb)-Root
   |___정적 서비스 file - html, image, jsp
   |___WEB-INF
             |-----web.xml(배치 서술자)  -->Web Container가 읽어서 어떻게 일해라를 알려준다. (프로그램이 시작시읽어들임)
             |_____classes
             |             |____ .class파일(ex : 서블릿파일)
             |_____ lib
                         |__ .jar(압축된 class 파일들->api)

 

----------------------------------

* web.xml

* 배포(배치) 서술자(설명자) - Deployment Descriptor(DD 파일)
* Web Application에 대한 여러 가지 설정을 해주는 xml기반의 파일
   - 서블릿 등록
   - 서블릿 요청을 위한 url 설정
   - 초기 파라미터 설정
   - 보안 설정
* 모든 Web application은 하나의 web.xml 파일을 가져야 함
* 위치 :  WEB_INF 폴더 아래
* web.xml 파일의 설정들은 Web Application 시작시 메모리에 로딩된다.
   - 수정을 할 경우 web application을 재 시작 해야 한다.

* xml
- 데이터의 정보를 알려준다.
ex :

<age>30</age>
<size>30</size>

- Root tag : <webapp></webapp> ( 모든 설정들은 webapp태그 안으로 들어간다.)

* xml 작성시 주의점

1. 대소문자 구분
2. attribute 값은 반드시 ""또는 ''으로 감싸야 한다.
3.. 태그는 반드시 닫아야 한다. - content가 없는 태그의 경우

<html> <b> <a href="">
<HTML> <B> <A HREF = "">
html은 위에 있는 두 구문이 같지만, xml을 다르게 인식한다.

<font size ="5">
<font size = 5 >
html은 위에 두 구문을 같게 인식하지만 xml은 <font size = 5 >하면 인식하지 못한다.

<font size ="5">aaaaaaaa</font>->이 구문은 html이든 xml이든 다 닫아 줘야하고
<br>이 구문은 html은 인식되지만 xml을 인식하려면 <br/>로 해줘야 한다. - content가 없는 태그의 경우

 

 

Posted by 조은성
,
* Web application(프로그램) - 동적서비스와 정적서비스로 나뉜다.

- 정적인 서비스(Web서버) - 가지고 있는 값들만 요청을 서비스 할 수 있다.

- 동적인 서비스 - 그때 그때 요청에 따라 값을 만들어 서비스 한다. 
   동적인 서비스를 실행할 수 있는 환경을 Web컨테이너라고 부른다.

* 클라이언트가 서블릿을 요청을 하면 웹서버가 요청을 받는다. 웹서버는 정적인 서비스 밖에 할 수 없어서 웹컨테이너로 넘겨 서 웹컨테이너에서 처리하고 처리한 것을 다시 웹서버로 넘겨주고 웹서버가 다시 클라이언트로 보내준다.
* 톰캣 : 웹서버와 웹컨테이너를 둘다 사용하기 위한 환경을 제공한다.

* CGI 중 자바에서는 - Servlet - java(메인이 java) -> html 출력
                             |
                             - jsp - html(메인이 html) -> java code 삽입

 

 * 기존의 servlet 프로그램

 * Servlet 프로그램


* Container - Component( java beans )->p/g모듈 : 독립적인 업무를 처리하고 재사용 가능한 p/g 모듈
   ->Component 실행환경-> infra 기술들을 제공 -> component들이 실행 하는게 공통적으로 필요한 Logic
      (->component들을 자신의 비지니스 로직만 생각하면 된다.)

* 각각의 비지니스 로직을 컴포넌트 들이 가지고 있고, 공통적으로 필요한 것을 container로 처리하여 받아 온다.
  실행할때 필요한 infra 적인 것과 공통적인 것, 실행환경은 container(Web container)에서 다 만들어 주므로 component(servlet & jsp)는 자신의 로직만 생각해서 만들면 된다.  

Posted by 조은성
,