본문 바로가기

Servlet&JSP

Servlet - 2

  1. 한글처리를 하자.
  2. mime type charset=euc-kr 추가를 한다.

    resp.setContentType("text/html; charset=euc-kr");

     

  3. 서버가 reload 가능하도록 하자. 개발할 때만 이렇게 한다. --> 수정하면 바로바로 적용되도록 한다.
  4. D:\tomcat5.5\conf\context.xml 편집하자.

     

    <Context reloadable="true">

        <!-- Default set of monitored resources -->

        <WatchedResource>WEB-INF/web.xml</WatchedResource>

     

        <!-- Uncomment this to disable session persistence across Tomcat restarts -->

        <!--

        <Manager pathname="" />

        -->

    </Context>

     

    • context.xml 수정하면 tomcat 모든 application 반영된다.

     

  5. http://127.0.0.1:8080/servlet/net.cjedu.hello.HelloServlet 이렇게 실제로 url 경로를 노출시키는 것은 위험한 짓이다. 별칭을 지어서 이용하자.
    1. D:\tomcat5.5\webapps\ROOT\WEB-INF\web.xml 추가한다.

    <servlet>

            <servlet-name>HelloServlet</servlet-name>

            <servlet-class>net.cjedu.hello.HelloServlet</servlet-class>

    </servlet>

    <servlet-mapping>

            <servlet-name>HelloServlet</servlet-name>

            <url-pattern>/hello.view</url-pattern>

    </servlet-mapping>

     

  6. 접속해 보자
  7. http://127.0.0.1:8080/hello.view

    http://127.0.0.1:8080/servlet/net.cjedu.hello.HelloServlet 이렇게 접속하지 않아도 된다.

     

  8. XML 기본 설명
    • eXtensible Markup Language
    • 구성요소 : element

    <tag이름 속성이름="" 속성이름2="2">

    내용

    </tag이름>

     

    • 내용이 없다면

    <tag이름 속성이름="" 속성이름2="2" />

     

    • XML 문서의 유형

     

    DTD/Schema
    문서가 있는 경우

    DTD/Schema
    문서가 없는 경우

    형식을 지킨 경우

    well formed document,

    validation

    well formed document,

    no validation

    형식을 지키지
    못한 경우

    not well formed document,

    validation

    not well formed document,

    no validation

     

    • Parsing, Parser
    • Well-Formed 규칙
      1. 반드시 하나 이상의 element 가져야 한다.
      2. 반드시 root element 하나이어야 한다.
      3. 모든 태그는 시작 태크와 종료 태그로 이루어져야 한다.( 태그 가능)
      4. 속성은 시작 태그에만 있다.
      5. 속성은 이름="" or '' 형태이어야 한다.
      6. not overLap
      7. XML 선언부는 문서의 제일 첫번째 와야 한다.
      8. case sensitive

     

  9. HTTP 프로토콜
  10. HTTP 프로토콜 : TCP/IP 를 기반으로 하여 웹에서 사용하는 프로토콜로서 요청(Request) 과 응답(Response) 데이터를 전송하는 방식

     

    ■ HTTP 요청(Request) 주요 구성요소

    • HTTP 메소드 (실행할 액션)
    • 접근하고자 하는 URL
    • 폼 파라미터 (메소드의 매개변수와 비슷함)
    •  

    ■ HTTP 응답(Response) 주요 구성요소

    • 상태코드 ( 요청 처리에 대한 성공여부)
    • 컨텐츠 타입 (텍스트, 그림, HTML 등)
    • 컨텐츠 (HTML 코드, 이미지 등)

     

    GET 메소드 : 단순한 자원(HTML 문서, 이미지 ) 요청. 간단한 파라미터 정도만 HTTP 요청 사용

     

     

     

    POST 메소드 : 사용자의 입력값을 HTTP 요청 서버에 전달. 복잡한 파라미터 사용 가능

     

     

  11. Servlet API
    • servlet 만들 때는 HttpServlet 상속받아 만들고 생성자 대신 init()메소드를 사용한다.

     

  12. 서블릿 라이프 사이클 >> 중요 메소드
  13. init()

    • 컨테이너 에서 서블릿 객체를 생성한 다음에 호출한다. service() 이전에 실행
    • 서블릿을 초기화
    • 초기화할 내용(DB 접속 ) 있는 경우 재정의

    service()

    • 클라이언트의 요청 컨테이너에서 쓰레드를 이용하여 호출
    • 요청의 HTTP 메소드(GET, POST) 참조하여 해당 메소드(doGet(), doPost() ) 호출 판단
    • 거의 재정의 하지 않음

    doGet() 또는 doPost()

    • service() 메소드에서 HTTP 메소드(GET, POST) 참조하여 호출
    • 비즈니스 로직을 구현 또는 호출
    • 메소드 하나는 반드시 재정의하여 구현해야 한다.

     

     

  14. 구구단 출력
  15. 테이블 형태이로 별칭은 gugu.view

     

    package net.cjedu.hello;

     

    import java.io.*;

    import java.util.*;

    import javax.servlet.http.*;

    import javax.servlet.*;

     

    public class Gugu extends HttpServlet{

     

    public void init() throws ServletException{

    System.out.println("HelloServlet's init..................");

    }

     

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException{

    resp.setContentType("text/html; charset=euc-kr");

    PrintWriter out = resp.getWriter();

    out.println("<HTML>");

    out.println("<HEAD>");

    out.println("<TITLE>");

    out.println("구구단");

    out.println("</TITLE>");

    out.println("</HEAD>");

    out.println("<BODY>");

     

    out.println("<h1>구구단</h1>");

    out.println("<table border='1'>");

     

    for(int j = 1; j < 10; j++){

    out.println("<tr>");

     

    for (int i = 1; i < 10; i++ ){

    out.print("<td>" + i + " * " + j + " = "  + i*j + "</td>");                

     

    }

     

    out.println("</tr>");

    }

     

    out.println("</table>");

    out.println("</BODY>");

    out.println("</HTML>");

     

    out.close();

    }

    }

    ===

    D:\tomcat5.5\webapps\ROOT\WEB-INF\web.xml 추가

    <servlet>

            <servlet-name>Gugu</servlet-name>

            <servlet-class>net.cjedu.hello.Gugu</servlet-class>

    </servlet>

    <servlet-mapping>

            <servlet-name>Gugu</servlet-name>

            <url-pattern>/gugu.view</url-pattern>

    </servlet-mapping>

    ===================================================================

     


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

파일다운로드 jsp  (0) 2011.09.29
Tomcat에서 ◎ 한글 파라미터를 가진 링크를 만들 때  (0) 2009.10.27
Servlet - 3  (0) 2009.10.22
Servlet - 1  (0) 2009.10.22