Tomcat 설치 및 웹 출판 프로젝트의 구성

Tomcat 설치 및 웹 출판 프로젝트의 구성

컨텐츠 오늘

         1, 웹 개발 기본 개념 (이해)

         2, 톰캣 설치 및 구성 (해야)

         3, 출판 프로젝트 (예정)

         4, HTTP를 소개 프로토콜 (이해)

웹 개발의 기본 개념

1, 소프트웨어 아키텍처

         일반적으로 사용되는 소프트웨어 : QQ, Jingdong, Taobao의, KGC

         1) C / S 아키텍처

         설명 : 클라이언트 / 서버.

         특징 : 다운로드 및 각 업데이트를 설치해야 할 가능성이 갱신 될 필요가 클라이언트와 서버를 다운로드해야

         컨트롤은 그래픽 시스템을 호출하기 때문에 기본 API는, 냉각

         2) B / S 아키텍처

         설명 : 브라우저 / 서버 아키텍처. 그것은 요청 / 응답 모드를 이용하여, HTTP 기반의 프로토콜이다.

         특징 : 브라우저를 통해 직접 액세스는 업데이트는 서버 측에서 사용자의 개입, 유지 보수가 필요하지 않습니다

2, 웹 리소스 분류

         웹 자원은 무엇인가?

         서버에서 사용자가 파일에 액세스하려면, 이미지, CSS, JS, 비디오, 오디오 등

         1) 정적 자원 : CSS, JS, HTML 사진 비디오 및 오디오

         2) 동적 자원은 파일을 컴파일하는 경우, 생성 된 파일 컨테이너에 의해 실행되는 동적 자원이다. 서블릿, JSP.

         자원, 동적 자원 엔진을 갈 정적 리소스에 대한 사용자 액세스가 동일하지 않은 경우.

3, 서버의 개념과 일반적인 웹 서버

L 서버는 무엇입니까?

         서버 소프트웨어와 하드웨어의 조합. 먼저 서버의 하드웨어에 의해, 서버 소프트웨어를 설치, 소프트웨어가 시작되도록 구성 할 수 있습니다. 사용자가 액세스 할 수 있도록.

리터 일반적인 웹 서버

개념 : 사용자가 웹 서버에 배포 할 때 프로그램을 실행할 수있는 웹 서버, 당신은 액세스 웹 리소스를 시작할 수 있습니다.

1)는 WebSphere : IBM의 서버 사업, 무료.

2) 웹 로직 : BEA의 서버 사업, JSP 충전 / 서블릿

3) IIS, ASP를 asp.net

4) 바람둥이 : 효율적이고 컴팩트 한 오픈 소스 서버. Tomcat은 일반적으로 지금 종종 분산 환경에서 클러스터를 구축 할 수 있습니다.

 

4, 웹 동적 자원 구조

 

         웹 애플리케이션 (웹 루트)

                  WEB-INF

은 web.xml (배포 설명자 파일)

LIB (파일, jar 파일을 넣어)

                  JSP (HTML CSS의 JS)

 

다음은 일반적인 사이트는 CSS, JS와 유사한 imgs을 넣어 특정 폴더가 생성됩니다 다음과 같습니다. 리브는 타사 JAR를 넣어 당신이 경로를 구축 갈 필요로 복사 한 후

바람둥이 설치 및 구성

         1. 다운로드 : https://tomcat.apache.org/download-80.cgi

         2. 무엇을 다운로드?

    

         설명 : GZ (64) 또는 (32)의 적절한 선택은 운영 체제에 따라, 리눅스 버전, 우편 윈도우 버전이다.

         3, 설치가 압축 해제됩니다.

                  1) 루트 디렉토리에 압축을 풉니 다

                  2) 매우 특수 문자를 사용하지 마십시오 공백없이 중국의 폴더로 추출 할 수 없습니다

 

 

         4, 구성

                  1 )이 소프트웨어는 의존 JDK를 JDK는 시작하지 실행할 수 없습니다. 그런 다음 구성해야합니다 JDK 환경 변수를

                  JAVA_HOME : C : \ 프로그램 파일 \ 자바 \ jdk1.8.0_111

 

CLASSPATH :;. % JAVA_HOME % \ lib 디렉토리; % JAVA_HOME % \ lib 디렉토리

 

 

                  , 앞에 % JAVA_HOME의 % \ bin에 경로 환경 변수를 구성;

 

 

 

 

경로 환경 변수 수정 완료

 

D : \ 프로그램 파일 \ MySQL은 \ MySQL 서버 5.5 \ 빈;

이 환경 변수 설정 데이터베이스입니다

 

 

% JAVA_HOME % \ 빈;

이 환경 변수의 구성이다 JDK

 

 

% systemroot % \ system32에, %의 SYSTEMROOT % 안에 % SystemRoot % \ System32 \ WBEM]을 % SystemRoot % \ System32 \의 WindowsPowerShell \ v1.0을 \;

 

 

% CATALINA_HOME % \ 빈;

이것은 톰캣 환경 변수의 구성이며

 

 

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

                 

 

 

 

 

                  2 ) 구성 톰캣 환경

                  CATALINA_HOME은 : D : \ 아파치 - 톰캣-8.0.26

 

                  이 % CATALINA_HOME %의 \ bin에 이어;

 

                  3) 어떻게 성공적으로 설치를 결정하기 위해

           

 

5 명령 줄에서 startup.bat를 , 다음과 같은 화면이 나타납니다 깜박이지 않는 화면, 그것은 아무 문제가 없음을 의미합니다. 이것은 성공적인 출시를 보여줍니다

 

 

6 시험 : 브라우저 입력 // localhost를 : HTTP 8080 /을 ,

 

         7, 바람둥이 디렉토리 구조

 

빈 : 시작 및 종료 바람둥이 폴더에 있습니다.

 

startup.bat를이 서버를 시작하는 데 사용됩니다,

SHUTDOWN.BAT는 서버를 중지하는 것입니다 .

여기 박쥐 파일 우리라는 배치 파일을 .

.sh로 끝나는 파일은 시작 및 리눅스 환경에서 파일 서버의 종료합니다.

 

conf의 : 구성 폴더 .

lib 디렉토리 : 소프트웨어 패키지에 의존 항아리

로그 : 로그 파일

임시 : 임시 폴더

웹 어플리케이션은 : 귀하의 사이트가 여기에 복사 할 수 있습니다와 같은 자신의 웹 응용 프로그램 파일 폴더를 게시하는 데 사용됩니다.

작업 : 소스 파일을 넣어 JSP 문서 번역 및 컴파일 된 바이트 코드 파일

웹 출판 프로젝트

오해를 학습 :

1) 우리는 우리가 동적 사이트의 개발을 완료, 또는 공식적으로, 수동으로 웹 어플리케이션에 대한 프로젝트를 복사하는 시간이 시작 테스트 할 수 있다고 생각?

통해 http : // localhost : 8080 / WEB01는 / xxxxx는 자원

답변 : 당신은이 작업을 수행 할 수 있지만, 디버깅 효율의 개발이 너무 낮은, 특정 코드를 수정할 때마다 수동으로 복사해야합니다, 너무 느린. 그래서 우리는 자동으로 소프트웨어를 통해 다음의 webapps에 복사됩니다. 이 소프트웨어 복사 프로세스가 호출됩니다 배포 및 게시 . 때 닉이 방법으로? 예를 들어, 프로젝트 완료 후, 고객 사이트에 일반적으로 소스 코드 (소스 코드를 그냥 구현 엔지니어를 제공하지 않음)의 현장에 가져온 것이 아니라, 컴파일 된 파일은 일반적으로 수동 배포를 복사합니다. 원격 사본도 배포 할 수있는 방법이 될 수 있습니다. (가 클라우드 서버는 계정과 암호가있다).

수제 사본을, 및 자동 복사와 같은 도구를 복사 일식을 통해 배치 : 2) 게시 됨.

 

톰캣 웹 프로젝트는 세 가지 방법 중 총 해제 :

  1. 의 WebContent 웹 프로젝트는 직접에서 바람둥이 / webapps에 복사.

 

 

  1. 바람둥이의 가상 경로 구성
  2. 바람둥이의 가상 경로 구성

 

방법 1 : 웹 어플리케이션에 직접 항목을 복사

단순히이 폴더를 복사 webContext 내용입니다에 웹 어플리케이션에 웹 프로젝트가 관심을 지불 할 수 있습니다 복사합니다.

 

 

例如 통해 http : // localhost : 8080 /의 WebContent / NewFile.jsp

http://60.1.1.128:8080/aa/NewFile.jsp

당신이 당신의 웹 페이지에 누군가 다른 사람의 컴퓨터에 접근 할 필요가있을 때, 당신은 할 필요가 로컬 호스트 머신 60.1.1.128의 대신 IP 주소를

검은 창에서 ipconfig에서, 길의 IP 주소를 가져옵니다

 

 

두 번째 방법 : 바람둥이의 가상 경로를 구성 (권장하지 않음)

바람둥이 / conf / server.xml 파일에 구성

에서는 <호스트> 태그 구성 :

<컨텍스트 경로 = "AAA"는 Docbase = "D / HELLOKITTY"/>

 

세 가지 방법 : 가상 경로의 바람둥이 구성 (권장)

在 바람둥이 / conf의 / 카탈 리 / localhost를 / xxx.xml

配置 <Docbase의 문맥 = "D / HELLOKITTY"/>

 

파일의 끝의 경로로 치환 된 "D : / HELLOKITTY"

가상 경로의 이름 XXX

XML 파일 만들기

XML 파일 이름은 액세스 경로입니다

例如 통해 http : // localhost : 8080 / AA / NewFile.jsp

 

어떻게 경로를 얻으려면?

 

 

작업은 cmd를 서버를 시작하는 데 사용하고, 서버가 일식을 사용하여 달성된다 웹 프로젝트를 게시 시작

바람둥이 환경 구성을 일식 및 배출과 웹 프로젝트의 배포

 

 

 

참고 : 플러그인이 자동으로 게시되기 때문에, 먼저 웹 서버에 추가하지 마십시오

 

 

 

 

HTTP 프로토콜 개요

개요의 HTTP 계약

협정

계약이란 무엇인가 : 양 당사자의 규칙을 준수해야합니다

http 프로토콜

무엇는 HTTP입니다 : 프로토콜 브라우저와 서버 사이의 규칙 준수를 요구하는. .

해석 : 소프트웨어 계약입니다, 브라우저와 서버의 규칙의 규정을 따라야합니다. 왜 우리가 규칙을 준수해야합니까? 이 소프트웨어이기 때문에 수행하는 기계, 그는 단지 기계적인 실행을 판단하지 않습니다. 컴퓨터 세계에서 그리고 바이너리 데이터. 그런 다음이 데이터는 상호 작용하고 통신, 기계가이 명령을 실행하는 것입니다 무엇을 알고 어떻게? 그런 다음 규칙에 동의해야합니다. 그래야이 될 수 있습니다.

 

브라우저와 서버 사이의 사양 데이터 전송 :는 HTTP 프로토콜의 역할.

 

http 프로토콜 기능 :

  1. 요청 및 응답 모델을 기반으로

의 응답 요청이 있어야합니다

요청 및 응답 쌍을 이루어야합니다

  1. 기본 포트 번호는 80이다
  2. 3       A는 무 상태 프로토콜

 

HTTP 프로토콜 버전 :

1.0 즉시 각 연결에 응답하여 폐쇄.      

각 응답은 끊지 후 1.1 지금. 오랫동안 기다린 후, 어떤 요청을 끊지 않을 것이다.

데모 http 프로토콜

패킷 캡쳐 분석 : 방법을 얻을

섹션을 요청 :

GET /ServletDemo/http/demo2.html?name=aaa&age=18 HTTP / 1.1

호스트 : 로컬 호스트 : 8080

사용자 에이전트 : 모질라 / 5.0 (윈도우 NT 10.0; Win64를, 64 장, : 56.0) 게코 / 20100101 파이어 폭스 / 56.0

승인 : text / html과, 응용 프로그램 / XHTML + XML, 응용 프로그램 / XML, Q = 0.9, * / *; q를 = 0.8

수락 - 언어들 ko-CN,에서 zh, EN-US Q = 0.8; Q = 0.5, 욕실, Q = 0.3

수락 - 인코딩 : gzip을을 수축

리퍼러 : 통해 http : // localhost : 8080 / ServletDemo / HTTP / demo1.html

연결 : 연결 유지

업그레이드 - 안전하지 않은-요청 : 1

 

패킷 캡쳐 분석 : 포스트 방법

섹션을 요청 :

POST /ServletDemo/http/demo2.html HTTP / 1.1

호스트 : 로컬 호스트 : 8080

사용자 에이전트 : 모질라 / 5.0 (윈도우 NT 10.0; Win64를, 64 장, : 56.0) 게코 / 20100101 파이어 폭스 / 56.0

승인 : text / html과, 응용 프로그램 / XHTML + XML, 응용 프로그램 / XML, Q = 0.9, * / *; q를 = 0.8

수락 - 언어들 ko-CN,에서 zh, EN-US Q = 0.8; Q = 0.5, 욕실, Q = 0.3

수락 - 인코딩 : gzip을을 수축

콘텐츠 형식 : 응용 프로그램 / x-www-form-urlencoded를

콘텐츠 길이 : 15

리퍼러 : 통해 http : // localhost : 8080 / ServletDemo / HTTP / demo1.html

연결 : 연결 유지

업그레이드 - 안전하지 않은-요청 : 1

 

이름 = BBB 및 연령 = 38

 

응답 부분 :

HTTP / 1.1 200 OK

서버 : 아파치 - 코요테 / 1.1

수락 - 범위 : 바이트

있는 ETag : W / "143-1508222586306"

마지막은 - 수정 : 화를 2017년 10월 17일에게 그리니치 표준시 06시 43분 6초를

콘텐츠 유형 : 텍스트 / html로

콘텐츠 길이 : 143

날짜 : 2017년 (화) 그리니치 표준시 06시 48분 5초 10월 17일

 

<! DOCTYPE html로>

<HTML>

<head>

<메타 캐릭터 = "UTF-8">

<제목> 삽입 제목 여기에 </ 제목>

</ head>

<body>

         서블릿을 안녕하세요!

</ body>

</ HTML>

자세한 http 프로토콜

요청 부분

요청 라인

제출 :

제출 방법은 여러 가지가 일반적으로 삭제, 가져 오기, 포스트, 일부 풋은 사용이 있습니다 ...

수와 차이를 게시 :

제출 된 매개 변수는 주소 표시 줄에 표시됩니다 얻을하지만 게시하지 않습니다

크기가 제한되는 경향이 있고, 크기 제한을 게시하지 얻을

어떤 요청 본문을 얻을 수없고, 사후 요청 본문이있다

경로를 제출 :      

프로토콜 버전 : HTTP / 1.1

 

요청 헤더

키 - 값은 일반적으로 키 값에 해당하는 존재의 형태로 표시됩니다, 뭔가 하나 개 이상의 키 값이

사용자 에이전트 : ---은 IE가 URLEncoder 인코딩 사용, 중국어 문서를 다운로드하고, 파이어 폭스는 Base64로 인코딩됩니다, 파일 브라우저 다운로드의 유형을 나타내는

리퍼러는 : 소스 페이지 .--- 안티 - 핫 링크를 나타냅니다

경우 - 수정 - 이후 : 일반적으로 로컬 캐시를 찾기 위해 마지막으로 수정 응답 헤더와 함께 사용.

 

요청 본문

우편 제출은 매개 변수를 서버에 제출

응답 부분

응답 라인

프로토콜 버전 : HTTP / 1.1

상태 코드 :

200 개 성공

302 리디렉션

로컬 캐시를 찾기 (304)

(404 개) 자원이 존재하지 않는

500 내부 서버 오류

상태 코드 설명

 

응답 헤더 : 값 쌍 보통 값에 대응하는 키뿐만 아니라 복수의 키에 대응하는 값

마지막으로 수정하십시오 IF-수정-때문에 요청의 헤더를 살펴 로컬 캐시를 사용하여.

헤더 파일 다운로드 시간 사용 : 내용 - 처리

위치 : 점프 경로를 리디렉션

새로 고침 : 타이머 / 타이머 점프를 새로 고침

문제 :

         웹, 원칙은 무엇 캐시인가?

         동일한 자원에 대한 요청은 요청 헤더가 서버에 IF-수정-함에도 (타임 스탬프)을 취할 때 요청 처음으로, 클라이언트 브라우저 캐시 폴더에 두 번째 시간을 자원과 시간을 넣을 때 어떤 서버 최종 수정 시간을 요청한 자원을 찾기 위해, 그리고 자원이 브라우저 캐시 폴더로 다시 전송됩니다 다른 경우 시간이 지남에 가져 이번에는, 비교하고,이 타임 스탬프를 가져올 것이다 Last- 과거에 수정. 같은 경우, 브라우저는 자동으로 캐시 폴더 및 표시에 자원을 발견 할 것이다 (이 때 브라우저 캐시 폴더에 리소스를 다시 전송되지 않습니다) 상태 코드 (304)를 보낼 수 있습니다.

응답 본체 :

브라우저에 페이지의 내용을 표시합니다

작업 :

1 개 세 출판 연습

2, 종료를 이클립스에서 웹 프로젝트를 생성하고, Tomcat을 구성하고, 프로젝트의 시작을 게시 할 수 있습니다.

3, 서블릿 미리보기

 

결론 학습 :

1 , 웹 프로젝트를 만들 것입니다, 당신은 바람둥이를 구성, 프로젝트를 게시합니다, 시작

2 , 서블릿이 생성 배치 디스크립터를 구성하고, 서블릿 (상대 및 절대 경로)에 액세스하는 URL을 합격

(3) 상기의 서블릿 (제어기)에 의해 제출 된 요청 파라미터 클라이언트 브라우저 요청 개체로부터 수득한다.

그것은 전제가 배경에서 배경으로 포 그라운드에서 데이터를 제출 얻을 것을 의미합니다. Request 객체는 핵심 방법을 배운다.

4 , 배경에서 전경에있을 것입니다. 이 데이터 페이지 또는 프론트 데스크에 응답합니다. Reponse 객체

도 5는 요청이 왜곡이나 변형에 응답하여 처리 될 것이다. 요청 데이터 때 프론트 수득하고,이 왜곡 될 경우 GET 처리 할 제출. 응답 데이터는 응답 처리에 의해 왜곡된다.

도 6은 , 차례로 데이터 저장 영역 오브젝트에 해당 도메인 객체를 선택 및 전달 재 사이의 차이를 이해한다. 물론, 또한 개체 필드에 저장된 값에서 얻을.

7 , MVC 구현 프로세스

8 (데이터 처리 사이클을 결합하고, 결합 도메인 객체 후의 데이터로부터 판정 된 경우), 및 JSTL EL 표현식을 사용

도 9는 , 3 층 구조에 기초하여,이이 기초의 기초이다.

도 10은 , 필터의 사용

11 , JSP 구 내장 개체 및 사용

(12) 는 AJAX가 처리 한 데이터는 JSON을 반환

13 , 하나의 조건 페이징 쿼리 테이블

 

일부 개선 :

1 , 쿠키 원칙

2 세션 원칙

3 , 크로스 도메인 액세스 문제

4 , 양식 제출 처리를 반복

5 , 쿠키 금지 어떻게 처리?

6 , 업로드 (업로드 및 다운로드를 처리하기위한 프레임 워크를 개발하지 않는 우리의 기업과) 파일을 다운로드

7 리스너 장면을 사용하여,

8 사용자 자동 로그인 기능

9 , JSP의 페이지 (의 일부 액션, 작은 스크립트, 셔플 사용의 표현)

10 , 코드

11 조건, 페이징 쿼리 여러 테이블

 

 

        

추천

출처www.cnblogs.com/codeXi/p/11298224.html