JSP&Servlet

[Servlet]1. 웹 통신

CodeJaram 2023. 6. 16. 08:14

1. 웹 통신(20p.)

-웹의 요소: HTML/URL /Web Browser, Web Server/HTTP

 

2. 웹 클라이언트 서버구조

-client: 데이터/서비스 요청

-server: 데이터/서비스 제공

1:n의 구조

 

3. 웹 흐름

-Web Browser: 웹페이지 요청(www.naver.com)

-Web Server: html 문서로 응답 →웹 브라우저가 문서 해석 후 웹페이지로 변환

 

4. 웹페이지의 종류

-정적 페이지(Static Web): 저장된 데이터를 보여주는 페이지(사용자에 따라 바뀌지 않음)

예)위키백과, 나무위키 등

 

-동적 페이지(Dynamic Web): 사용자에 따라 화면을 다르게 보여주는 페이지

  예)네이버, 유튜브 등(사용자에 따라  추천 페이지 달라짐)

 

 

5. WAS(Web Application Server): 웹 애플리케이션 서버

-동적 페이지 만들 때 사용자의 수만큼 html 문서를 생성해야 함

→서버에서 HTML 파일을 대신 만들어 주는것

 

-Server에서 정적 페이지 생성→ WAS에 동적 페이지 생성하도록 요청을 전달함

 

예시) 로그인

 

● jsp/servlet을 사용하는 이유

새로운 유저를 생성할 때마다 process를 생성해야 하기 때문에 많은 사람이 접속할 경우 server

허용량 초과->jsp/servlet에서는 유저가 접속해도 thread를 생성하기 때문에 과부하 걸리지 않음

 

 

 

 

6. servlet: server+applet

-java프로그램이 웹 서버에서 자동으로 설치되어 동작하는 프로그램)

-Server상에서 작동하는 Java 기반의 웹 어플리케이션 프로그래밍 기술

 

 

 

 

 

[환경구축]tomcat 9버전

-apache tomcat 아파치 톰캣 홈페이지에서 다운로드

-servers 탭에서 tomcat 9버전 불러오기

-new-Dynamic web project

-project-new-servlet -service()메소드

 

인코딩 방식 변경(39p.): 텍스트를 보여주는 방식

-EUC-KR: 한국어 팩 설치 필수 한글에 없는 글자 오류

-UTF-8: 자음 모음 조합

 

7. request 객체: client가 요청을 했을 때 요청에 관련된 정보를 담고 있는 객체

  • 요청한 ip 주소확인: request.getRemoteHost()

ex)요청이 들어온 주소, 요청할 때 작성한 데이터(id,pw 등)

*포트번호 변경: servers 탭-tomcat 9.0더블클릭-HTTP 포트번호 8081로 변경

 

[실습1]내 servlet을 요청한 ip주소 확인하기

//1. request 객체 호출하기: 요청한 ip 주소 확인

String client_ip=request.getRemoteHost();

System.out.println(client_ip);

//2. 실행된 웹페이지 주소에서 localhost 부분을 내 ip 주소로 바꾸기

*내 ip 주소확인: cmd(명령프롬프트)->iconfig->IPV4 주소

 

 

 

8. response 객체: client데이터가 넘어오면 응답하는 객체

  • 응답할 문서에 대한 설정: response.setContentType("text/html; charset="인코딩 방식");
  • 웹에 출력하는 출력스트림: printWriter out=response.getWriter();

 

[실습2]Servlet을 이용해 Web에 text 출력하기

//1. request 객체 호출

String client_ip=request.getRemoteHost();

//2. response 객체 호출

response.setContentType("text/html; charset=UTF-8");

//3. printWriter 객체: 웹에 출력하기

PrintWriter out=response.getWriter();

//4. Servlet을 이용해 Web에 text 출력하기

out.print("안녕하세요");

out.print("<h1>자람의 페이지</h1>");

 

[실습3]Servlet을 이용해 Web에 이미지 출력하기(이미지 태그)

//1. request 객체 호출

String client_ip=request.getRemoteHost();

//2. response 객체 호출

response.setContentType("text/html; charset=UTF-8");

//3. printWriter 객체: 웹에 출력하기

PrintWriter out=response.getWriter();

//4. Servlet을 이용해 Web에 text 출력하기

out.print("안녕하세요");

out.print("<h1>자람의 페이지</h1>");

//5. 이미지 출력하기(img 태그)
out.print("<img src='./고양이.jpg'>");

 

[실습4] 우리 팀이면 환영하는 문구를 우리 팀이 아니면 거절하는 문구 출력

 

String client_ip=request.getRemoteHost(); //request 객체 호출

response.setContentType("text/html; charset=UTF-8"); //response 객체 호출

PrintWriter out=response.getWriter(); //web페이지 출력하는 출력스트림


if (client_ip.equals("ip1")//멤버1

||client_ip.equals("ip2")//멤버2

||client_ip.equals("ip3")//멤버3

||client_ip.equals("ip4")) {//멤버4



out.print("<h1>'우리팀'님 환영합니다.</h1>");

out.print("<img src='./welcome.jpg'>");

}else {

out.print("<h1>우리팀이 아닙니다.</h1>");

out.print("<img src='./out.png'>");

}r

 

'JSP&Servlet' 카테고리의 다른 글

[JSP]3. MVC 패턴으로 JDBC 만들기  (0) 2023.06.22
[JSP]2. 내장객체  (0) 2023.06.21
[JSP]1. JSP의 구성요소  (0) 2023.06.20
[Servlet]3. 데이터 전송방식(get/post)  (0) 2023.06.19
[Servlet]2. 데이터 전송(get방식)  (0) 2023.06.19