study/WebServer

0_ws_(기본설정)

스파이크12 2020. 1. 8. 17:40

# 다운로드
http://tomcat.apache.org/ 에서 8버전
왼쪽 탭 Download -> Tomcat 8 -> 8.5.50 -> Core - 64bit 
Windows zip
# device에 풀어놓기

# 오라클 포트 변경하기
# 8080포트는 톰캣에서 사용하고 있어서 변경
(오라클이 포트바꾸기가 편해서 바꿈)
1. cmd창 sqlplus 실행
2. 관리자로 연결
Enter user-name: sys as sysdba
Enter password: oracle
3. 현재 포트확인
SQL> select dbms_xdb.gethttpport() from dual;
4. 포트변경 내장프로시져 실행
SQL> exec dbms_xdb.sethttpport(9090);

---------------------------------------------
@ 인터페이스설정
자바에서하던 기본설정하고 servers progress 추가

@ 언어설정

preferences -> general -> editors -> text editors - > spelling 
-> encoding= default(utf-8)
preferences 에서 enco 검색 -> content types 창에서
text를 클릭하고 아래 default encoding: UTF-8입력 후 업뎃
workspace, css, html, jsp, xml 전부 utf-8로 변경

1. Create a Dynamic Web project 생성
(만약 이게 없으면 오른쪽상단 Open Perspective 들어가면
Java EE 가있는지 확인하고 없으면 다시 이클립스다운)

1-1.
@Project Name : 1_Servlet
@Target runtime : 서버타겟잡는부분
-> New Runtime -> appach 8.5v -> name : Servlet Server//
Tomact installation directory : browser 누르고
C:\dev\5_WebServer\apache-tomcat-8.5.50
(톰캣설치경로)
// JRE : 는 그대로 하고 finish(jre가 여러개있을경우선택)
@Dynamic web module version 이 3.0 에서 3.1로 바뀜
버전확인 꼭 
@확인됬으면 next
1-2.
@Source folder on build path : 소스가 저장될 폴더경로
@★ default output folder : .class 파일이 모아지는 폴더
 (배포할 내용이 들어있는 폴더)
WebContent/WEB-INF/classes 로 변경
#배포시 WebContent 하위내용만 배포됨(배포용)
#WEB-INF 외부직접접근이 안되는 폴더(보안)
#classes : .class모음
@확인됬으면 next
1-3
@context root : localhost:8080/뒤에 들어가는 이름
(내가만든페이지의 최상위 주소)
(보안을 위해 프로젝트명과 배포되는 홈페이지이름은
달라야함) 실습이니까 그냥 ㄱㄱ
@content directory: Tomcat이 인식할 root디렉터리설정
(ex 다른 src 폴더 등을 안읽어드림)
배포용폴더 root 지정
@★generate web.xml deployment descriptor : 체크
배포 서술자(Servlet, Filter, Wrapper 등으로 연결 해주는 역할)
Java EE 스펙으로 웹 애플리케이션의 기본적인 설정을 위해 
작성하는 파일
JSP와 서블릿으로만 구성된 경우에는 web.xml파일만 사용하
면 됨
@확인됬으면 finish

#WebContent.META-INF : 메타 기본설정
#Web-INF : 내부에서만 접근가능(프로젝트안을내부)
@web.xml
xml : 모든 언어에서 사용가능, 마크업언어,
스키마 : 참고정보
 : 외부에보여질이름
 : 웹 애플리케이션 요청시
자동으로 보여줄 파일 지정
index.html
남기고 삭제

## 컨트롤 + 쉬프트 + / = 주석
---------------------------------------------
###참고###여러개 서버운영할때
preference 검색창에 server
3번째 Runtime Enviroments 들어가서
add들어가서 추가하면됨
---------------------------------------------

-----------------------------------------------
@조작할 서버 추가
하단에 servers 누르고 no server are ~~~ 클릭
2-1 하나만 등록되어있기때문에 설정이 되어있음
next
2-2 배포하고싶은 서버를 클릭후 오른쪽이동 후 finish

@서버설정
하단에 서버 더블클릭
Server Options에
3-1
Serve modules without publishing 체크 : 
뭔가 받을때 프로젝트 내부에 저장하기 위한 옵션
체크하지 않으면 위에 server path에 잡힌 경로 근처로감
컨+s로 저장 꼭
3-2
ports 확인 http:/1.1 = 8080인지

----------------------------------------------
1) WEB-INF 안에 배포용 index.html 복붙

2)
1_Servlet.WebContent 에 views폴더생성
그안에 testServlet1.html 생성

<form method="GET" action="/1_Servlet/testServlet1.do" 
name="testFrm">

위내용대로 form 수정


#form에서 입력받은 내용을 /1_Servlet에 testServlet1.do
주소명으로 전달

3)
src에 서블릿생성
패키지 : com.kh.servlet
classname : TestServlet1
init//초기화 
service//클라이언트로부터 전송받은 방식인
GET, POST 여부에 따라 해당 메소드를 호출
doGet//겟방식 
doPost//포스트방식 
destroy//클라이언트에 전달 후 
리퀘스트 리스폰스 객체 파괴 //만 체크

위쪽 @머시기는 지우기 (아직안씀)
init() -> 
service() {doPost(request, response)}->
doPost() ->
doGet() {getParameter로 읽어옴(String으로읽어옴)
getParameterValues로 읽어옴(하나초과)
하나초과되는 값은 배열로 받아야함
}

4) web.xml
testServelet1.html에서 전달받은 내용을 전달받기위해


<!-- 서블릿 등록 작업-->
<servlet>
	<servlet-name>TestServlet1</servlet-name>
	<servlet-class>
		com.kh.servlet.TestServlet1
	</servlet-class>
</servlet>
<!-- 어떤 주소 이름으로 들어오면 실행거임? -->
<servlet-mapping>
	<servlet-name>
		TestServlet1
	</servlet-name>
	<url-pattern>/testServlet1.do
	</url-pattern>
</servlet-mapping>