servlet practice_240416

Choi Suyeon·2024년 4월 16일

Java EE(Enterprise Edition)

기업에서 사용하는 프로그램을 개발하는 용도의 Java개발 버전

Servlet

Java EE중 웹 서비스를 구현하기 위해 CGI를 준수하여 제작된 기능.
동적으로 HTML을 생성하기 위해 사용.
CGI(Common Gateway Interface)

일반언어가 웹 서비스를 하기 위해 공통 방식을 정의해 놓은 것.
  -C언어가 CGI를 준수하면  C-CGI.
  -Java언어가 CGI를 준수하면 Servlet

장점 : 언어에서 제공하는 모든 기능을 사용할 수 있다.
단점 : -속도가 느리다.( 개발속도도 느리고, 서비스 되는 속도도 느리다.)
      -구조가 복잡
      -디자이너와 개발자간의 업무구분이 어렵다.

서비스하기 복잡하다.(DD : Deployment Descripter)

Web browser는 HTML만 실행할 수 있다.
.class파일을 실행하기위해 DD가 필요하다.
  • java로 web service하기 위한 폴더 구조

    -Servlet/JSP는 동적으로 HTML을 생성하는 언어.
    -Servlet/JSP는 WAS에 의존성 있다. ( WAS가 반드시 존재해야한다.)
    ** WAS( Web Application Server)
    -웹에서 Servlet/JSP를 요청하면 HTML을 생성하여 응답해줄 수 있는 프로그램

Servlet의 흐름

Servlet의 상속도


  1. HttpServlet 클래스 상속(내가 만든 클래스로 웹 서비스가 가능.)
    public class Test extends HttpServlet{

  2. 웹의 요청방식을 처리할 수 있는 method overriding
    <a href="">, location, <form method="GET, POST">

  • get방식요청 : <a>, location, , 직접요청하는 경우
protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException,IOException{
  • post방식 요청 :
protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException,IOException{
  • get방식, post방식 모두 요청
protected void service(HttpServletRequest request, HttpServletResponse response)
   throws ServletException,IOException{
  1. 응답방식 설정( 접속자에게 제공할 형식 : MIME-types의 설정)
    //MIME (Multipurpose Internet Mail Extensions) :
    // 인터넷에서 데이터를 송,수신하기 위해 정해놓은 규약
  • tomcat이 생성할 수 있는 MIME-types는 web.xml에 정의되어있다.
  • response.setContentType(“text/html;charset=UTF-8”);
    //언어에 이슈 – 영어만 표현
    //doGet, doPost, service method안의 내용을 HTML로 만들어서 응답.
  1. 생성된 응답 데이터(HTML)를 내보내기 위한 출력 스트림을 얻는다.
    PrintWriter out=response.getWriter();
  2. 응답할 내용을 HTML코드로 만들어서 출력스트림으로 출력한다.
    out.print("<html>태그");
    out.println("<html>태그");
  • 생성된 class파일을 web browser에서 인식하게 만들기위해 DD에 등록을 해야한다.
    //DD : Deployment Descriptor => WEB-INF/web.xml

  1. Servlet 등록
    <servlet>
    <servlet-name>객체명</servlet-name>
    <servlet-class>패키지명.class명</servlet-class>
    </servlet>

  2. URL mapping ( web browser에서 클래스를 사용할 수 있도록 다른 이름으로 연결하는 것)
    <servlet-mapping>
    <servlet-name>객체명</servlet-name>
    <url-pattern>/웹브라우저에서 인식할 이름</url-pattern>
    </servlet-mapping>

    *tomcat실행 ( startup.bat )

  • web browser열고 노드의 에 정의된 URL을 사용하여 servlet을 호출한다.

  • 순서
    1. Source code작성
    2. DD설정
    3. class파일을 서비스하는 위치 배포
    4. WAS실행
    5. web browser를 실행하여 서블릿 요청
    6. 서블릿이 응답 결과 보기

순서

  1. server.xml과 web.xml를 로딩한다.
    요청 URL을 처리할 수 있는 HDD의 경로와 연결파일명이 설정된다.

  2. 접속자가 URL을 입력하여 요청.
    http://localhost/servlet_prj/hello

    hosts파일을 찾고 hosts파일에 domain정보가 존재하지 않으면 DNS서버로 가서 서버의 ip를 얻는다.

  3. 요청 URL을 분석하여 HDD에 존재하는 class파일을 객체화
    servlet_prj/hello

  4. setContentType()에 정의되어있는 파일이 생성 ?.html동적으로 생성
    응답받은 HTML을 Rendering하여 보여줌.

0개의 댓글