톰캣 _ 주

# 웹 관련 개념 검토
 1. 소프트웨어 아키텍처
  1. C / S : 클라이언트 / 서버
  (2) B / S : 브라우저 / 서버
 2. 자원 분류
  1. 정적 리소스가 모든 사용자 액세스 한 후, 그 결과가 동일라는 정적 자원 정적 자원을 직접 브라우저에 의해 구문 분석 할 수있다.
   * 예를 들면 : HTML, CSS, 자바 스크립트
  (2) 동적 자원 : 각 동일한 자원에 대한 사용자 액세스 한 후, 결과는 상이 할 수있다. 동적 자원했다. 동적 리소스에 액세스 한 후 브라우저로 돌아 정적 자원을 변환해야
   * 같은 : 서블릿 / JSP, PHP, ASP를 ....
   
 통신 네트워크의 제 세 요소
  1. IP : 전자 장치 (컴퓨터) 네트워크의 고유 한 식별자.
  2. 포트 : 응용 프로그램이 컴퓨터를 고유하게 식별합니다. 0 ~ 65536
  3. 전송 프로토콜 : 규칙 데이터 전송을 제공한다
   : 1. 기본 계약
    1. TCP : 보안 프로토콜, 세 방향 핸드 셰이크를. 느린 속도에서
    안전하지 않은 프로토콜 : 2 UDP. 빠른

## 웹 서버 소프트웨어 :
 * 서버 : 서버 소프트웨어 설치 컴퓨터
 처리 요청이 사용자의 요청을 받아 응답 : 서버 소프트웨어 *
 * 웹 서버 소프트웨어 : 사용자의 요청을 받고는 응답을 요청을 처리합니다.
  * 웹 서버 소프트웨어, 당신은 사용자가 브라우저를 통해 다음 항목에 액세스 할 수 있도록 웹 프로젝트를 배포 할 수 있습니다
  * 웹 컨테이너

 * 일반적인 자바 웹 서버 소프트웨어와 관련된 :
  * 웹 로직은 다음 오라클, 큰 JavaEE 어플 서버는 유료로, 모든 JavaEE 어플 사양을 지원합니다.
  *는 WebSphere : IBM 사, 큰 JavaEE 어플 서버는, 사용료에 대한 모든 JavaEE 어플 사양을 지원합니다.
  * JBOSS : JBOSS 회사의 큰 JavaEE 어플 서버는, 사용료에 대한 모든 JavaEE 어플 사양을 지원합니다.
  * 톰캣 : JavaEE 어플 사양 서블릿 / JSP의 아파치 기금, 중소 JavaEE 어플 서버, 지원 단지 소수. 오픈 소스, 무료.

 * JavaEE 어플 : 엔터프라이즈 개발에 사용되는 자바 언어의 기술 사양의 합은 사양 (13) 큰 총을 제공
 * 톰캣 : 웹 서버 소프트웨어
  를 다운로드합니다 : HTTP : //tomcat.apache.org/
  2. 설치 :에 아카이브의 압축을 풉니 다.
   * 참고 : 설치 디렉토리를 가지고하지 않는 것이 좋습니다 중국과 공간
  3. 제거 : 라인에 디렉토리를 삭제
  4. 시작 :
   * 빈 / startup.bat를 두 번 클릭하여 실행 파일을
   * 액세스 : HTTP : // localhost를 : 8080 브라우저를 입력 에 대한 액세스를 입력하십시오
         에 http : // 다른 사람의 IP : 8080 사람들이 방문
   
   : * 가능한 문제
    1. 검은 화면이 번쩍 :
     * 이유 : JAVA_HOME 환경 변수가 제대로 구성되어 있지 않습니다
     * 솔루션 : 구성 JAVA_HOME 환경 변수를
    2. 시작이 주어지고 :
     1. 폭력 : 포트 번호가 이미 발견하고 해당 과정을 찾아,이 죽일
      -ano NETSTAT *
     2. 부드러운 : 포트 번호 수정
      *의 conf / server.xml에
      * <커넥터 포트 = " 8888 "프로토콜 ="HTTP / 1.1 "
                  은 ConnectionTimeout ="20000 "
                  있는 redirectPort ="8445 "/>
      포트 번호는 HTTP 프로토콜의 기본 포트 번호는 바람둥이 일반 의지의 * 기본 포트 번호는 80.80입니다.
       * 장점 : 포트 번호를 입력하지 액세스
  5. 닫기 :
   1. 일반 닫기 :
    * 빈을 /를 SHUTDOWN.BAT는
    * Ctrl + C
   2. 강제 :
    * × 창을 시작 클릭
  6. 구성 :
   * 배포 프로젝트를 방법 :
    1. webapps 디렉토리에 프로젝트를 직접.
     * / 안녕하세요 : 프로젝트의 액세스 경로 -> 가상 디렉터리
     * 단순화 배포 : 전쟁으로 표시 프로젝트 패키지, 다음 전쟁 팩이 webapps 디렉토리 아래에 배치됩니다.
      * 전쟁 패키지가 자동 압축 해제
    2. 구성의 conf / server.xml 파일
     의 <호스트> 태그 본문 구성 할 수 있습니다
     : <경로 = "/ 도니는 다르게"/ 컨텍스트 Docbase에 = "\ 헬로 D">
     저장된 경로 항목 : * Docbase의
     * 경로 : 가상 디렉터리
    XML 파일에게 conf의 \ 카탈 \ 로컬 호스트에있는 이름을 작성합니다. 파일에 작성된
     <컨텍스트 Docbase에 = "D : \여보세요"/>
     * 가상 디렉토리 이름 XML 파일의
   
    * 정적 항목과 동적 항목 :
    * 디렉토리 구조
     * 디렉토리 구조 동적 자바 프로젝트 :
      - 프로젝트 루트 디렉토리
       - WEB-INF 디렉토리 :
        -은 web.xml : 웹 항목의 핵심 프로필
        - 클래스 디렉토리 : 바이트 코드 파일에 대한 디렉토리
        - LIB 디렉토리 : 의존 항아리 패키지를 배치

   * 톰캣은 IDEA에 통합하고, JavaEE 어플 프로젝트 배포 프로젝트를 만듭니다.
 
 
서블릿 ## : 서버 애플릿
 * 개념 : 서버 측 애플릿을 실행
  * 서블릿은 자바 클래스를 정의 규칙 (인식 바람둥이) 브라우저에서 액세스 할 수있는 것을하는 인터페이스입니다.
  * 미래 우리가 클래스, 서블릿 인터페이스 복제 방법을 사용자 정의 할 수 있습니다.

 * 시작하기 :
  1. JavaEE 어플 프로젝트 만들기
  구현 서블릿 인터페이스가있는 클래스를 정의합니다
   * 공용 클래스 ServletDemo1 구현 서블릿
  인터페이스 추상 메소드를 구현 3.
  4. 구성 서블릿
    web.xml의 구성 :
      <! - 구성 서블릿 - ->
      <서블릿>
          <서블릿 이름>은 데모 1 </ 서블릿 이름>
          <서블릿 클래스> cn.itcast.web.servlet.ServletDemo1 </ 서블릿 클래스>
      </ 서블릿>
  
      <서블릿을 -Mapping>
          <서블릿 이름 >는 데모 1 </ 서블릿 이름>
          <URL 패턴> /를 데모 1 </ URL 패턴>
      </ 메핑 servlet->
 * 원칙의 구현 :
  서버가 클라이언트 브라우저에서 요청을 수신 1. 요청 URL 경로를 구문 분석은 자원의 경로 서블릿 액세스는 액세스
  <URL 패턴> 태그에 대응 몸이있는 경우, 2. 찾기 web.xml 파일을 콘텐츠입니다.
  3.이 경우, 해당 <서블릿 클래스> 찾을 전체 클래스 이름
  4. 바람둥이 의지 바이트 코드 파일이 메모리에로드, 그 목적은 만드는 것입니다
  메서드를 호출 5.
 * 서블릿 라이프 사이클 접근 방식은 다음과 같습니다
  1. 생성 할 : init 메소드, 한 번만
   * 서블릿 때 생성되는?
    * 기본적으로 액세스 할 때 처음으로, 서블릿이 생성됩니다
    *는 서블릿 기회를 만들어 실행하도록 구성 할 수 있습니다.
     * 구성에서 <서블릿> 태그
      1. 먼저 액세스 작성
                   * <시작시로드> 음수
               2. 서버가 생성 개시
                   0 *에게 <시작시로드를> 값 또는 양의 정수

   * 서블릿의 초기화 방법은, 메모리 내의 하나의 오브젝트 만이 존재 서블릿 나타내는 번만 수행 서블릿 싱글 인
    다수의 사용자를 동시에 액세스 *는 스레드 안전 문제가있을 수있다.
    * 해결 방법 : 서블릿의 멤버 변수를 정의하지보십시오. 당신이 멤버 변수를 정의 할 경우에도, 값을 수정하지 않는
  2. 서비스 조항 : 서비스 실행 방법은 여러 수행
   * 당신이 서블릿을 방문 할 때마다이 서비스 방법은 한 번이라고합니다.
  파괴 3. 구현에있어서 한 번만 행해진 다 파괴
   * 서블릿이 파괴 될 때 실행된다. 서버가 종료되면, 서블릿이 파괴되어
   소멸 방법을 수행합니다 전용 서버가 정상적으로 종료 *.
   * 서블릿 전에 파괴 방법은 일반적으로 릴리스 자원, 실행 파괴
 Servlet3.0 * :
  * 장점 :
   주석 구성을위한 * 지원. 당신은 web.xml 파일이 필요하지 않을 수 있습니다.
  * 단계 :
   1. web.xml을 만들 수 없습니다, 더 서블릿 버전 3.0을 선택, JavaEE 어플 프로젝트를 만들거나
   클래스의 2. 정의가 구현 서블릿 인터페이스
   3. 복제 방법
   클래스 4. @WebServlet 주석, 구성
    * @WebServlet ( "리소스 경로")

    @Target ({} ElementType.TYPE)
    @Retention (RetentionPolicy.RUNTIME)
    @Documented
    공개 @interface WebServlet {
        문자열 이름 () 기본 ""; //相当于<서브릿 이름>
    
        문자열 []의 값 () {} 기본; //代表urlPatterns ()属性配置
    
        문자열 [] urlPatterns () {} 기본 //相当于<URL 패턴>
    
        INT loadOnStartup () -1 기본적 //相当于<시작시로드>
    
        WebInitParam [] initParams () 기본 {};
    
        부울 asyncSupported () 디폴트는 false
    
        문자열 smallIcon () 기본 "";
    
        문자열 largeIcon () 기본 "";
    
        문자열 설명 () 기본 "";
    
        문자열 나 displayName () 기본 "";
 
## IDEA와 바람둥이 구성
 1. IDEA 개별적으로 배포 바람둥이 각 프로젝트에 대한 프로파일을 작성합니다
  CATALINA_BASE를 사용 : "C : * 콘솔 로그보기 \ 사용자 \ fqy \ .IntelliJIdea2018.1 \ SYSTEM \ 바람둥이 \ _itcast "
 웹 프로젝트 바람둥이 2. 작업 공간 및 프로젝트 배포
  실제 방문 바람둥이 *는 "작업 프로젝트"웹 디렉토리 아래에있는 모든 자원에 해당하는 "웹 프로젝트의 배포 바람둥이", "바람둥이 배포 된 웹 프로젝트"입니다
  * WEB-INF 자원 디렉토리를 직접 브라우저를 액세스 할 수 없습니다.
 3. 정지 점 디버깅 : 사용 "버그"시작 dubug 시작

추천

출처www.cnblogs.com/ironman-yan/p/11996183.html